尝试重定向到另一个控制器操作(课程),同时从不同的控制器传递所选的ID,该控制器通过视图模型显示COurses
向用户显示编辑的正确语法是什么,重定向到课程控制器,选择课程控制器上的编辑操作并传入选定的ID
我试过
@Html.ActionLink({"Edit", Action="Edit", area = "Courses", courseID = item.CourseID})
但语法错误
提前致谢
答案 0 :(得分:3)
假设您没有编辑课程的路线,您可以使用Html.Routelink并使用默认路由。
@Html.RouteLink("Edit", "Default", new System.Web.Routing.RouteValueDictionary {{"controller", "courses"}, {"action", "edit"}, {"id", item.CourseID }})
但是,如果你有一个特定的路线,如下面的样本路线,
routes.MapRouteLowerCase(
"Edit_course", // Route name
"courses/edit/{courseid}", // URL with parameters
new
{
controller = "Courses",
action = "Edit",
courseid = UrlParameter.Optional
},
new string[] { "MyProject.Controllers" }
);
我想你可以使用:
@Html.RouteLink("Edit", "Edit_course", new System.Web.Routing.RouteValueDictionary {{"controller", "courses"}, {"action", "edit"}, {"courseid", item.CourseID }})
这样,您可以为该特定路线生成网址,而不是仅根据操作名称的第一个匹配路线创建网址。
答案 1 :(得分:2)
以下内容:
@Html.ActionLink("Edit", "Edit", "Courses", new { courseID = item.CourseID},null)
会将您重定向到:localhost:56802/Courses/Edit?courseID=1
为了将您重定向到localhost:56802/Courses%20/Edit/2
:
方法1:
如果您使用默认路线:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
使用以下内容:
@Html.ActionLink("Edit", "Edit", "Courses", new { id = item.CourseID},null)
方法2: 使用以下路线:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{courseID}",
defaults: new { controller = "Home", action = "Index", courseID = UrlParameter.Optional });
@Html.ActionLink("Edit", "Edit", "Courses", new { courseID = item.CourseID},null)