Мой вопрос похож на этот , и у меня похожая проблема, но большая разница в том, что я использую вспомогательные методы Ajax (Ajax.ActionLink
и Ajax.BeginForm
) вместо обработки AJAX с JQuery.
Request.IsAjaxRequest()
возвращает true для метода Edit, который принимает http GET, но false для метода Edit, принимающего http POST.
Запрос GET приходит по ссылке, сгенерированной:
<%=Ajax.ActionLink(item.Name, "Edit", "Device",
new { id = item.ID },
new AjaxOptions { HttpMethod= "GET", UpdateTargetId = "ModalDialog" },
new { name = item.Name })%>
Запрос POST приходит из формы, сгенерированной этим кодом:
<% using (Ajax.BeginForm("Edit", "Device", new { id = Model.ID }, new AjaxOptions { OnComplete = "CloseDialog" }))
{ %>
<fieldset>
<h4>
<label for="Name">Name</label>
</h4>
<%= Html.TextBox("Name", null, new { @class = "required" })%>
<h4>
<input type="checkbox" id="IsActive" name="IsActive" <% if (Model.IsActive)%> <%=Html.Encode("checked=''")%> />
<label for="IsActive">Unit Is Active</label>
</h4>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<% } %>
Это умышленно, я что-то не так делаю, и как мне это исправить?