C# Ajax.begin无法指定表单

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&

我正在尝试创建一个视图,该视图将使用ASP.NET写入数据库,并使用
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"
}))