我使用Ajax开始表单,当我点击提交按钮时,post方法不会调用,这里是代码:
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "personListDivforReturnPerson"}))
{
<div class="ReturnPersonGeneralPageBody">
<div class="returnPersonHeader">
საზღვრის კვეთისას დაფიქსირებული მონაცემები
</div>
<div class="fieldNameForMIA">
<span>@Html.LabelFor(model => model.LastName, "გვარი")
<br />
@Html.EditorFor(model => model.LastName)
</span>
<div class="fieldNameInnerForMIA">
<span>@Html.LabelFor(model => model.FirstName, "სახელი")
<br />
@Html.EditorFor(model => model.FirstName)
</span>
</div>
</div>
<div class="fieldNameForMIA">
<span>@Html.LabelFor(model => model.PersonalNo, "პირადი ნომერი")
<br />
@Html.EditorFor(model => model.PersonalNo)
</span>
<div class="fieldNameInnerForMIA">
<span>@Html.LabelFor(model => model.DateOfBirth, "დაბადების თარიღი")
<br />
@Html.EditorFor(model => model.DateOfBirth)
</span>
</div>
</div>
<div class="fieldNameForReturnCheckBox">
@Html.LabelFor(model => model.IsIdentified, "სხვა სახელით დაბრუნდა")
@Html.CheckBoxFor(model => model.IsIdentified)
</div>
<div class="saveReturnPerson">
<input type="image" name="submit" id="submit" src="/Content/Resources/SaveGeo.gif" />
</div>
</div>
}
这里是post方法,永远不会被调用:
[HttpPost]
public ActionResult EditReturnPerson(int id, FormCollection collection)
{ ....
但是在加载第一个时调用此方法:
public ActionResult EditReturnPerson(long parentObjectId, int parentObjectTypeId, bool readOnly = false)
{
....
答案 0 :(得分:2)
在AjaxOptions
中将该方法提及为 POSTnew AjaxOptions { UpdateTargetId = "personListDivforReturnPerson",
HttpMethod ="POST"}
如果您不提及,则默认值为GET
。
编辑:此外,如果您想使用自己的代码处理它,您可以使用手写JavaScript来完成。相当干净和完全控制。
摆脱AjaxBeginForm
并在视图中使用普通表单。
@using(Html.BeginForm())
{
@Html.EditorFor(model => model.FirstName)
@Html.EditorFor(model => model.PersonalNo)
<input type="submit" class="ajaxSubmit" />
}
现在有一些javascript来处理表单提交
<script type="text/javascript">
$(function(){
$(".ajaxSubmit").click(function(e){
e.preventDefault();
var item=$(this);
$.post("@Url.Action("EditReturnPerson","YourControllerName")",
item.closest("form").serialize(), function(response){
$("#personListDivforReturnPerson").html(response);
});
});
});
</script>
答案 1 :(得分:1)
ბიჭოაქქვერიანნაფერს:Dგეუბნებისერვერსსერვერსიმართავსვსაიქქისსაღაცახელს。 კლიენტისსარესრესაფერიკარგადაა。 ესესიდედეაგარიკაცია,ფორმასსუკეთებით-სსაdefaultმეთოდიარისსიმაგდროს。
答案 2 :(得分:1)
我发现了我的问题,问题是[HttpPost] public ActionResult EditReturnPerson(int id, FormCollection collection) { ....
在这部分,id是int,我在DB中的id是bigint,所以我在控制器中将int更改为long,一切正常,感谢您的建议。