2010-09-29 65 views
0

我有一個窗體(這個窗體是彈出窗口),其中我有一個JQGrid和一組我要提交給控制器的字段。形式Html.BeginForm彈出一個新窗口

<% using (Html.BeginForm("Index", "Role"))   
     { 

    %> 
    <tr> 
     <td> 
      <%= Html.Hidden("RoleId")%> 
      <%= Html.Label("Priority:")%> 
     </td> 
     <td> 
      <%= Html.TextBox("Priority")%> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <%= Html.Label("System:")%> 
     </td> 
     <td> 
      <%= Html.DropDownList("system", "system")%> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <%= Html.Label("Client:")%> 
     </td> 
     <td> 
      <%= Html.TextBox("Client")%> 
      <%= Html.Hidden("state")%> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2"> 

      <input type="submit" name="CreateRequest" value="CreateRequest" onclick=AddRole();"" /> 
      <input type="button" id="btnCancel" name="Cancel" class="" value="Cancel" onclick="cancelAndRedirect();" /> 

     </td> 
    </tr> 
    <% } %> 

以下的以下的部分是控制

public ActionResult Index(string RoleId, string state, string priority, string system, string client) 
    { 
     _roleEntity = new RoleEntity(); 
     List<SelectListItem> systemList; 
     RequestModels _request = new RequestModels(); 

     _roleEntity.ValidFrom = DateTime.Now; 
     _roleEntity.ValidTo = DateTime.Now; 

     systemList = _request.GetAllSystems(); 
     ViewData[StringConstants.System] = systemList; 
     if (RoleId == null && state == "Add") 
     { 
      ViewData[StringConstants.ErrorMessage] = "Please select a role"; 
     } 
     else 
     { 
      ViewData[StringConstants.ErrorMessage] = string.Empty; 
     } 

     return View(_roleEntity); 
    } 

我的問題是, 1.當我的createRequest按鈕點擊,一個新的窗口打開得到。該表格不會在同一個窗口中發佈。 2.我從窗體調用Index方法,因爲我嘗試調用另一個像CreateRequest這樣的自定義方法失敗,並且出現錯誤,如 無法找到'CreateReqeust'或其主人的視圖。以下地點搜索: 〜/查看/角色/ CreateReqeust.aspx ...

感謝和問候, Muzammil艾哈邁德

+0

首先看的地方是你的「AddRole();」 JavaScript方法,看看你在做什麼。 – Buildstarted 2010-09-29 14:21:57

回答

0

沒有什麼太大的AddRole方法。我只是爲隱藏領域設定一個價值。

0

一下添加到彈出頁面的<head>部分:

<base target=_self> 

這是一個常見的問題,ASP.NET,而不是具體到MVC。