不使用 javascript 进行重定向:
如果将表单放在子视图中,有时如果在 Beginform 帮助器(子视图内部)中指定操作名称和控制器名称,则不会发生此问题。例如,我像这样更改了我的子操作视图:
前 :
@using (Html.BeginForm())
{
...
}
后 :
@using (Html.BeginForm("InsertComment", "Comments", FormMethod.Post, new { id = "commentform" }))
{
...
}
现在,您可以将 RedirectAction 命令放入“InsertComment”操作中,一切都会正常进行。
一页管理两种形式:
1.为提交按钮指定名称(每个表单)(例如:“submitvalue”)
表格1:
<input type="submit" value="login" name="submitValue" class="btn btn-success pull-right" />
表格2:
<input type="submit" value="register" name="submitValue" class="btn btn-success pull-right" />
2.为这些表格做两个动作。(例如:“注册”和“登录”)
[HttpPost]
public ActionResult Login(LoginVM model, string submitValue)
{
if (submitValue == "login")
{
//Do Something
}
...
}
[HttpPost]
public ActionResult Register(RegisterVM model, string submitValue)
{
if (submitValue == "register")
{
//Do Something
}
...
}
- 如果您单击表单中的注册或登录按钮,则会调用这两个操作,但使用“if”语句我们确定哪个是我们的目标。