C# Ajax.begin无法指定表单
我正在尝试创建一个视图,该视图将使用ASP.NET写入数据库,并使用C# Ajax.begin无法指定表单,c#,html,asp.net,asp.net-mvc,C#,Html,Asp.net,Asp.net Mvc,我正在尝试创建一个视图,该视图将使用ASP.NET写入数据库,并使用Ajax.BeginForm捕获数据。但是,每当我尝试调用forms POST方法时,它都会失败,出现错误404,说明找不到资源。我在这方面找到的在线教程没有什么帮助,我也不知道我哪里出了问题。我的代码如下: 查看:AddStop.cshtml @model FYP2._1.Models.Stop @{ ViewBag.Title = "Add Stop"; } <h2>AddStop&
Ajax.BeginForm
捕获数据。但是,每当我尝试调用forms POST方法时,它都会失败,出现错误404,说明找不到资源。我在这方面找到的在线教程没有什么帮助,我也不知道我哪里出了问题。我的代码如下:
查看:AddStop.cshtml
@model FYP2._1.Models.Stop
@{
ViewBag.Title = "Add Stop";
}
<h2>AddStop</h2>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<fieldset>
@using (Ajax.BeginForm("AddStop", "MapController", new AjaxOptions
{
OnSuccess = "OnSuccess",
OnFailure = "OnFailure",
LoadingElementId = "progress"
}))
{
<table id="tblPersons" cellpadding="0" cellspacing="0">
<tr>
<th colspan="2" align="center">Enter Details</th>
</tr>
<tr>
<td>
@Html.Label("Forename")
</td>
<td>
@Html.TextBoxFor(b => b.Forename)
</td>
</tr>
<tr>
<td>
@Html.Label("Surname")
</td>
<td>
@Html.TextBoxFor(b => b.Surname)
</td>
</tr>
<tr>
<td>
@Html.Label("PostCode")
</td>
<td>
@Html.TextBoxFor(b => b.Postcode)
</td>
</tr>
<tr>
<td>
@Html.Label("Route Type")
</td>
<td>
@Html.DropDownListFor(b => b.BusRoute, new List <SelectListItem>
{ new SelectListItem { Text = "Route 1", Value = "1" },
new SelectListItem { Text = "Route 2", Value = "2" },
new SelectListItem { Text = "Route 3", Value = "3" },
new SelectListItem { Text = "Route 4", Value = "4" },
new SelectListItem { Text = "Route 5", Value = "5"}})
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Submit" /></td>
</tr>
</table>
@Html.ActionLink("Back To Main Menu", "Index");
<div class="form-group">
<div class="col-md-offset-2 col-md-10" style="color:green">
@ViewBag.Message
</div>
</div>
}
</fieldset>
提前谢谢你的帮助
Add *HttpMethod = "Post"* to your AjaxOptions to handel it on your controller.
最好在你的行动中返回一个部分视图
@using (Ajax.BeginForm("AddStop", "MapController", new AjaxOptions
{
OnSuccess = "OnSuccess",
OnFailure = "OnFailure",
HttpMethod = "Post",
LoadingElementId = "progress"
}))
在
BeginForm
方法的参数中指定的控制器名称没有控制器后缀
应该是这样的:
@using (Ajax.BeginForm("AddStop", "Map", new AjaxOptions
{
OnSuccess = "OnSuccess",
OnFailure = "OnFailure",
LoadingElementId = "progress"
}))
仍然有同样的错误,你还有什么建议吗?这解决了它,非常感谢。
@using (Ajax.BeginForm("AddStop", "Map", new AjaxOptions
{
OnSuccess = "OnSuccess",
OnFailure = "OnFailure",
LoadingElementId = "progress"
}))