我正在使用Url.RouteUrl
创建一个网址以返回给我的用户。
var path = Url.RouteUrl(new RouteValueDictionary()
{
{ "controller", "Home"},
{"action", "myaction"},
{"area" , "myarea"},
});
这会返回一个包含myarea/home/myaction
如果我需要添加一个额外的参数,比如myarea/home/myaction?param1=abc
,那怎么办呢?
我试过
var param1Value = "abc";
var path = Url.RouteUrl(new RouteValueDictionary()
{
{ "controller", "Home"},
{"action", "myaction"},
{"area" , "myarea"},
new {param1 = param1Value },
});
这似乎不是那种方式。
任何人都可以提出一些方法吗?
答案 0 :(得分:1)
试试这个:
Url.Action("myAction","Home", new {area="myarea", param="paramvalue"});
答案 1 :(得分:0)
找到了一种优雅的方式。
var myDesiredUrl = FetchDomainUri();
myDesiredUrl.Path = Url.RouteUrl(new RouteValueDictionary()
{
{ "controller", "Home" },
{ "action", "myAction" },
{ "area" , "myArea" },
});
myDesiredUrl.QueryString.Add("myParam1", param1Value);
答案 2 :(得分:0)
希望这会有所帮助:
return (new RedirectToRouteResult(
new System.Web.Routing.RouteValueDictionary(
new
{
controller = "Home",
action = "myAction",
area = "myArea"
})));
如果要为其添加参数,可以在Route Config文件中添加/修改路径图。添加新密钥后,可以在上面的代码中指定值。