Asp.net mvc 4 如何在同一视图MVC中创建控制器中的两个动作结果?
我希望在我的视图中有两个按钮(称为“创建”),一个按钮提交表单并在完成后将用户带回主页,另一个按钮提交表单但重新加载评级页面以添加其他评级 这是我现在的问题- 目前,我的控制器中有一个按钮具有操作结果:Asp.net mvc 4 如何在同一视图MVC中创建控制器中的两个动作结果?,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我希望在我的视图中有两个按钮(称为“创建”),一个按钮提交表单并在完成后将用户带回主页,另一个按钮提交表单但重新加载评级页面以添加其他评级 这是我现在的问题- 目前,我的控制器中有一个按钮具有操作结果: public ActionResult Create(Rating rating) { if (ModelState.IsValid) { db.Ratings.Add(rating); db.SaveChange
public ActionResult Create(Rating rating)
{
if (ModelState.IsValid)
{
db.Ratings.Add(rating);
db.SaveChanges();
return RedirectToAction("Index");
}
**Additional code that is irrelevant here
}
public ActionResult TaskSubmit(int? id, string TaskSubmitAction)
{
switch (TaskSubmitAction)
{
case "ActionSubmit":
break;
case "ActionReject":
break;
default: throw new Exception();
}
public ActionResult Create(Rating rating, string action)
{
// other logic
if (action.Equals("redirect"))
return RedirectToAction("Index");
else if (action.Equals("reload"))
return View(rating);
else if //...
//... and so on
}
我面临的问题是,这个ActionResult中有一个重定向到主页的按钮,所以当我提交其他按钮并使用相同的ActionResult类时,它被重定向到主页。单击按钮并提交表单时,我在视图中使用javascript onclick事件重定向到Ratings页面,但如果我对两个按钮使用相同的Action Result类,它会将我希望保留在页面上的按钮重定向到index页面
如何从同一个视图创建两个操作结果类,每个提交按钮一个?如何使用的示例
Html,内部格式:
<button type="submit" name="TaskSubmitAction" value="ActionReject" class="btn btn-danger pull-left">Reject</button>
<button type="submit" name="TaskSubmitAction" value="ActionSubmit" class="btn btn-success">Accept</button>
那么,您如何确定用户想要做什么 两个按钮都提交表单,因此它们也可以使用相同的操作。但你需要以某种方式区分。你可以用按钮来做 假设您有两个按钮:
<input type="submit" name="redirect" value="true" />
<input type="submit" name="redirect" value="false" />
如果有两个以上的选项,那么可以使用字符串而不是布尔值。比如:
<input type="submit" name="action" value="redirect" />
<input type="submit" name="action" value="reload" />
关键是客户端代码需要告诉服务器端代码如何做。将其包含在表单提交本身中会使表单提交具有自描述性,并允许服务器端代码轻松处理它。在html中,为两个按钮赋予相同的“name”属性,但分配两个不同的值
<button name="submitBtn" value="valueX"> Button 1 </button>
<button name="submitBtn" value="valueY"> Button 2 </button>
<button name="submitBtn" value="valueX"> Button 1 </button>
<button name="submitBtn" value="valueY"> Button 2 </button>
String choice = request.getParamter("submitBtn");
if(choice.equals("valueX"))
//do something
else if(choice.equals("valueY"))
//do something else