我正在开发一个MVC应用程序,它具有用于提交数据的基本ajax表单。在表单之后,有一个局部视图,其中包含另一个ajax表单,用于将数据提交到下拉框,允许用户在不离开页面的情况下更新其内容。
创建
@model My Project.Models.Cars
@using (Ajax.BeginForm("Create", "Cars", new AjaxOptions
{
HttpMethod = "POST"
}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
... form fields would be here ...
}
@Html.Partial("_Manufacturer")
部分视图(_Manufacturer)
@using (Ajax.BeginForm("AddManufacturer", "AnotherController", new AjaxOptions
{
HttpMethod = "POST"
}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
... form fields for populating dropdown list ...
}
当我尝试在局部视图中提交ajax表单时,我收到错误:
汽车/ AddManufacturer未找到404资源
它应该使用的控制器是AnotherController
,如上面的表格所示。我不想创建多个表单和方法,我想重用我拥有的方法。它有没有理由这样做,有什么我可以做的吗?
答案 0 :(得分:0)
有时,partials会根据调用它们的位置呈现不同的URL。
检查您的网页,看看在第二张表单上呈现的网址是否正确。如果是这种情况,那么找一个可以正确解析路由的方法重载。
以下是重载列表: https://docs.microsoft.com/en-us/previous-versions/aspnet/web-frameworks/dd492974(v=vs.118)