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