目前,我正在研究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);
}
答案 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)
您可以通过两种方式(可能是三种)来实现
制作模型的“值”部分,并将模型发布到“视图”中,以便执行以下操作:
<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>
将值放在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>
将值放入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>