我可以将四个不同的控制器连接到一个表单吗?
答
不,您的表单只能连接到一个控制器操作。但是,一旦您执行了该操作,就可以将您的信息插入到您需要的任何表格中。
在以下示例中,表单将连接到驻留在家庭控制器中的“Home”控制器和“Create”操作。
@using (Html.BeginForm("Create", "Home", FormMethod.Post))
{
<div class="editor-label">
@Html.LabelFor(model => model.Content)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.Content, new { @cols = 60, @rows = 20 })
@Html.ValidationMessageFor(model => model.Content)
</div>
<p>
<input type="submit" value="Save" />
</p>
}
你的“创建”作用,这是你的“家”控制器的内部应该是这样的:
[HttpPost]
public ActionResult Create(PostViewModel model)
{
if (ModelState.IsValid)
{
//Do all your database/table inserts here.
//OR connect to your Data Access Layer (DAL)
//and have it do the inserts.
}
return View(model);
}
+0
逆向更好:if(!ModelSate.IsValid)返回View(Model);这会减少嵌套 –
没有,你的形式提交到一个URL,通过一个动作一个控制器,在处理这可能会通过数据库连接与多个表进行交互。我认为你需要访问教程网站以更好地理解这一点。 http://www.asp.net/mvc – Jasen
我怀疑你需要查看MVC模式。 –