通过将模型类作为参数传递来获取asp.net MVC中的按钮值

时间:2018-03-08 04:18:55

标签: c# asp.net-mvc razor

我有一个控制器,如下所示。我的Login视图我有以下字段,如下所示。

    // login model is my model class
    [HttpPost]
    public ActionResult Login(Login model)
    {
       return View();
    }


@using (Html.BeginForm())
{   
    <p> 
    UserName: @Html.TextBoxFor(m=>m.UserName)
   </p>   
  <p>
    Password: @Html.PasswordFor(m => m.Password)
  </p>
  <p>
     <input type="submit" name="login" value="Login" />
    <input type="submit" name="cancel" value="Cancel" />
  </p>  }

我想检查控制器用户是否点击了cancel按钮或login按钮。如何实现这一点。

请建议谢谢。

1 个答案:

答案 0 :(得分:1)

在asp.net mvc中有多种方法可以处理多个按钮。最常用的是为输入控件提供名称和值,并在服务器端获取值。 即。 cshtml页面

<input type="submit" name="save" value="Save" />
<input type="submit" name="cancel" value="Cancel" />

[HttpPost]
public ActionResult actionname(string save,string cancel)
{
    string controlClicked = string.empty;
    if(!string.IsNullOrEmpty(save))
    {
        controlClicked  = "save";
    }
    if (!string.IsNullOrEmpty(cancel))
    {
       controlClicked  = "cancel";
    }
    return View();
}

创建按钮并在格式属性中提供操作名称。

<input type="submit" name="save" value="save" formaction="saveaction" formmethod="post" />
<input type="submit" name="cancel" value="cancel" 
formaction="cancelaction" formmethod="post" />

formaction属性指定在提交表单时将表单数据发送到何处。此属性会覆盖表单的action属性。 formaction属性仅用于type =“submit”

的按钮
[HttpPost]
public ActionResult saveaction()
{
    return View();
}

[HttpPost]
public ActionResult cancelaction()
{
     return View();
}