是否可以将参数值传递给按钮内的另一个参数?

时间:2018-08-17 04:25:31

标签: c# asp.net-mvc model-view-controller

目前,我正在研究MVC,这是我第一次对此进行编码。

我在按钮中有一个参数,可以将参数传递给控制器​​。 我想将其传递给按钮的另一个参数。

查看:

<div style="margin-top:10px;">
    <button type="submit" class="btn" name="button" value="account" id="account">ユーザ情報</button>
</div>

<div style="margin-top:10px;">
    <button type="submit" class="btn" name="button" value="svAccount" id="account">SV情報</button>
</div>

控制器:

[HttpPost]
public ActionResult MaintenanceMenu(string button)
{
    ActionResult action = null;

    switch (button)
    {
        case "account":
            action = RedirectToAction("AccountList", "Account", new {@Bvalue="1"});
            break;
        case "svAccount":
            action = RedirectToAction("AccountList", "Account", new {@Bvalue = "5"});
            break;
        default:
            action = RedirectToAction("LogOut", "Login");
            break;
    }

    return action;
}

现在,如果要单击此按钮中的任何一个,我想传递值“ 5”或“ 1”。

<button type="button" class="btn_userfrom" name="button" value="menu" id="btn_create" data-list-url="<%:Url.Action("AccountCreate", "Account", new { @ref_code = @Bvalue }) %>">新規登録</button>

那有可能吗?

控制器:

public ActionResult AccountList(string Id, string Bvalue)
        {       

                UserData userData = Session["info"] as UserData;
                if (userData.RoleCode != "4")
                {
                    return RedirectToAction("LogOut", "Login");
                }

                BusinessLogicResult Result =
                    new AccountListSearchLogic().doProcess(new BusinessLogicInput() {
                        UserInfoData = userData,
                        BvalueAction = Bvalue  
                    });
            var UserList = Result[AccountListSearchLogic.KEY_OUT_USER_LIST] as List<AccountUserListView>;
            return View(UserList);
        }

2 个答案:

答案 0 :(得分:1)

如果我理解你的权利。然后,您在AccountList Action中获得值5或1,该值将返回带有最终按钮的页面。您可以按照progrAmmar的建议进行操作。

1。方式-模型- 您可以将具有价值的模型传递到使用它的视图中。

在控制器中

 public ActionResult AccountList(string value)
 {
      return this.View(value);
 }

在视图中

 @model string
 <button type="button" class="btn_userfrom" data-list-url="<%:Url.Action("AccountCreate", "Account", new { @ref_code = Model }) %>" name="button" value="menu" id="btn_create" >新規登録</button>

2。方式-ViewBag-您创建了在页面中使用的Viewbag。请记住,viewbag仅能保留一个请求。

在控制器中

 public ActionResult AccountList(string value)
 {
      ViewBag.Value = value;
      return this.View();
 }

在视图中

 <button type="button" class="btn_userfrom" data-list-url="<%:Url.Action("AccountCreate", "Account", new { @ref_code = ViewBag.Value }) %>" name="button" value="menu" id="btn_create" >新規登録</button>
  

编辑

我建议您使用UserList和BValue为页面创建ViewModel。

public class MyViewModel
{
    public MyViewModel(List<AccountUserListView> userList, String bValue)
    {
        this.UserList = userList;
        this.BValue = bValue;
    }

    public List<AccountUserListView> UserList;
    public String BValue;
}

并将其传递到您的视图中。

public ActionResult AccountList(string Id, string Bvalue)
{       
    UserData userData = Session["info"] as UserData;
    if (userData.RoleCode != "4")
    {
        return RedirectToAction("LogOut", "Login");
    }

    BusinessLogicResult Result = new AccountListSearchLogic().doProcess(
                                       new BusinessLogicInput() {
                                           UserInfoData = userData,
                                           BvalueAction = Bvalue  
                                       }
                                 );
    var UserList = Result[AccountListSearchLogic.KEY_OUT_USER_LIST] 
                         as List<AccountUserListView>;

    return View(new MyViewModel(UserList, Bvalue));
}

类似这样的事情。并认为:

@model MyViewModel
<button type="button" class="btn_userfrom" data-list-url="<%:Url.Action("AccountCreate", "Account", new { @ref_code = Model.BValue }) %>" name="button" value="menu" id="btn_create" >新規登録</button>

答案 1 :(得分:0)

您可以通过两种方式(可能是三种)来实现

  1. 制作模型的“值”部分,并将模型发布到“视图”中,以便执行以下操作: <button type="button" class="btn_userfrom" name="button" value="menu" id="btn_create" data-list-url="<%:Url.Action("AccountCreate", "Account", new { @ref_code = Model.BValue}) %>">新規登録</button>

  2. 将值放在ViewBag中,然后在View上调用它。 <button type="button" class="btn_userfrom" name="button" value="menu" id="btn_create" data-list-url="<%:Url.Action("AccountCreate", "Account", new { @ref_code = ViewBag.BValue }) %>">新規登録</button>

  3. 将值放入ViewData并在View上调用。 <button type="button" class="btn_userfrom" name="button" value="menu" id="btn_create" data-list-url="<%:Url.Action("AccountCreate", "Account", new { @ref_code = ViewData["BValue"].ToString()}) %>">新規登録</button>