控制器在 URL 上加倍(ASP MVC 2)
Controller Doubled on URL (ASP MVC 2)
我的 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
但如果我尝试调用 EditUser 函数,这是通过使用此 URL 模式
../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。提前致谢
在调用 Url 帮助程序之前,您可能需要将 ViewData
转换为字符串。
Url.Action(ViewData("formmode").ToString(), "Master")
否则将在运行时 return 对象。
我的 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
但如果我尝试调用 EditUser 函数,这是通过使用此 URL 模式
../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。提前致谢
在调用 Url 帮助程序之前,您可能需要将 ViewData
转换为字符串。
Url.Action(ViewData("formmode").ToString(), "Master")
否则将在运行时 return 对象。