我是asp.net mvc的新手,我有一个问题(非常基本)。我已经被黑了,但我对此并不完全确定,我找不到任何特别有用的东西。
假设我有2个控制器A和B以及2个视图FullView和PartView
public class AController:...
{
//Renders FullView
public ActionResult Create
{
....
}
[HttpPost]
public ActionResult Create
{
....
}
}
public class BController:...
{
//Renders an Arbitrary partial View (PartView)
public ActionResult Create
{
....
}
//Saves the data of the partial View
[HttpPost]
public ActionResult Create
{
....
}
}
第一个视图(FullView)具有代码
<%Html.RenderAction("Create", "B"); %>
我的问题是提交将BController的动作([HttpPost] Create)运行?
谢谢
答案 0 :(得分:3)
这取决于您在<form />
标记中指定的操作。这与asp.net mvc没有任何关系。如果您使用不带参数的Html.BeginForm()
,它将发布到当前网址(而不是BController上的创建操作)。
答案 1 :(得分:0)
你可以做的第一件事是在你的行动中切换一些断点并点击f5。 其次 - 所谓的操作纯粹取决于您使用什么http方法命中的URL。
但是对于你的情况,当你发布表单A和控制器A进程发布时,你可能会遇到验证问题,那就是你在post动作上返回View(),这就是为什么表单B是通过post方法呈现的。