为什么我不能在分部视图中重用 Ajax 窗体中的方法?



我正在开发一个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表单时,我收到以下错误:

404 在汽车/添加制造商中找不到资源

它应该使用的控制器是AnotherController的,如上面的表格所示。 我不想创建多个表单和方法,我想重用我拥有的方法。 这样做有什么原因吗,我能做些什么吗?

有时,部分的呈现方式与调用它们的位置不同。

检查您的页面,看看第二个表单上呈现的 URL 是否正确。如果是这种情况,请找到可以正确解析路由的方法重载。

以下是重载列表: https://learn.microsoft.com/en-us/previous-versions/aspnet/web-frameworks/dd492974(v=vs.118(

最新更新