我已经在网络表单上工作了一段时间,并不习惯mvc。
这是我想要做的:
<% if guest then %>
URL.RouteURL("AcccountCreate?login=guest")
<% end if %>
但是我不能这样做,因为它说没有创建具有此名称的路由。而且我认为为此创建一条路线是愚蠢的。
答案 0 :(得分:3)
<%= Url.Action("AcccountCreate", new { login = "guest" }) %>
或者如果您想直接生成链接:
<%= Html.ActionLink("create new account", "AcccountCreate", new { login = "guest" }) %>
您也可以指定控制器:
<%= Html.ActionLink(
"create new account", // text of the link
"Acccount", // controller name
"Create", // action name
new { login = "guest" } // route values (if not part of the route will be sent as query string)
) %>
答案 1 :(得分:1)
现在并非真正使用MVC路由。最好将您的网址设置为:
AccountCreate/guest
然后让你的行动接受该参数
public ActionResult AccountCreate(string AccountName)
{
//AccountName == guest
return View();
}
然后你可以有一个路由条目,如:
routes.MapRoute(
"AccountCreate", // Route name
"{controller}/{action}/{AccountName}", // URL with parameters
new { controller = "AccountCreate", action = "Index", AccountName = UrlParameter.Optional } // Parameter defaults
);
但是,如果您使用参数创建actionlink
并且没有匹配的路线,则会为您创建querystring
变量。