Html.BeginForm всплывает новое окно - PullRequest
0 голосов
/ 29 сентября 2010

У меня есть форма (это всплывающая форма), в которой у меня есть JQGrid и набор полей, которые я хочу отправить в контроллер. Следующее является частью формы

<% 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 ...

Спасибо и С уважением, Музаммил Ахмед

Ответы [ 2 ]

0 голосов
/ 30 сентября 2010

Добавьте это в раздел <head> всплывающей страницы:

<base target=_self>

Это распространенная проблема ASP.NET, не относящаяся к MVC.

0 голосов
/ 30 сентября 2010

В методе AddRole нет ничего особенного.Я просто устанавливаю значение в скрытое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...