我有两个Areas
:Profile
(针对每个用户)和Admin
(针对管理员)。有些用户可以拥有公司并在他们的个人资料中管理他们,管理员也可以在他们的区域内创建公司。
在管理区域,我有一个"_BaseForm"
文件,我保存公共代码并调用不同的部分来填充表单中的字段,如: -
var content = string.Format("~/Areas/Admin/Views/{0}/_Form.cshtml", (string)ViewBag.FolderName);
@using (Html.BeginForm(null,null,FormMethod.Post,new { @enctype = "multipart/form-data" }))
{
@Html.Partial(content)
}
问题在于,当我调用返回View的Add()
函数时,它会获得正确的表单,但操作URL对应于Profile Area
的控制器/操作: -
<form action="/Profile/Companies/Add" ..> <!-- it should be "/Admin/Companies/Add" -->
当我评论Add (Company)
区域中的Profile
函数时,它可以正常运行。
你能帮助我吗?
谢谢
答案 0 :(得分:1)
只需将您的BeginForm更正为:
@using (Html.BeginForm(null,null,new{ area="Admin" },FormMethod.Post,new { @enctype = "multipart/form-data" }))
{}