【发布时间】:2018-07-02 07:49:48
【问题描述】:
我在我的 FormUser 视图上有一个使用 Url.Action 的表单标签:
<form class="form-horizontal" action="..<%: Url.Action(ViewData("FormMode"), "Master") %>" method="post">
{some form code}
</form>
ViewData("FormMode") 是在我的控制器上生成的,无论是编辑还是新建。这是我的主控制器代码:
Function FormAddUser() As ActionResult
ViewData("AreaMenu") = sideBarModel.createLineMenu
ViewData("RoleOption") = RoleOption()
ViewData("FormMode") = "i_AddUser"
Return View("Form_User")
End Function
Function EditUser() As ActionResult
ViewData("AreaMenu") = sideBarModel.createLineMenu
ViewData("ReadOnly") = "readonly"
ViewData("FormMode") = "u_UpdateUser"
ViewData("RoleOption") = RoleOption()
Dim dt_user As DataTable = masterCommand.get_UserDetail(Request.QueryString("id"))
For Each dr As DataRow In dt_user.Rows
ViewData("v_UserName") = dr("User_Name")
ViewData("v_Role") = dr("ID_Role")
Next
Return View("Form_User")
End Function
如果我调用 FormAddUser 函数,提交按钮将具有正确的 URL 操作,即
../Master/i_AddUser
但如果我尝试使用此 URL 模式调用 EditUser 函数
../Master/EditUser/?id=Alex
表单上的提交按钮将使Master加倍
../Master/Master/u_UpdateUser
我尝试使用此配置 URL 模式
routes.MapRoute( _
"EditUser", _
"{controller}/{action}/{*id}", _
New With {.controller = "Master", .action = "EditUser", .id = UrlParameter.Optional}
)
但它似乎不起作用。我能做些什么?我正在使用 MVC 2。在此先感谢
【问题讨论】:
-
你想在这里做什么?您似乎正在动态地从 ViewData 设置表单目标操作和控制器,并且您没有为表单使用任何模型?
标签: asp.net-mvc vb.net asp.net-mvc-routing