[英]Asp.net mvc Url.Action to redirect controller with nullable parameters
我有这样的控制器:
public ActionResult Load(Guid? id)
{
...
}
加载/Report/Load
之类的视图时,将加载页面。
然后,我单击页面上的链接以加载一项/Report/Load/7628EDFB-EFD5-E111-810C-00FFB73098ED
,它可以很好地加载页面。
现在,我想使用此url.action再次重定向到/Report/Load
<a href="@Url.Action("Load", "Report")">Close Report</a>
但是它一直将我重定向到/Report/Load/7628EDFB-EFD5-E111-810C-00FFB73098ED
我需要对URL执行什么操作才能将我重定向到带有ID的页面?
尝试不成功:
<a href="@Url.Action("Load", "Report", null, null)">Close Report</a>
谢谢
我通过遵循johnnyRose和Beyers的回答来解决此问题。
结果是
<a href="@Url.Action("Load", "Report", new { id = "" }, null)">Close Report</a>
非常感谢。
我似乎找不到您的代码的问题。 但是,您是否不能在尝试加载特定项目时简单地在模型中设置URL。 在控制器内部的load函数中,执行以下操作:
var urlBuilder =
new System.UriBuilder(Request.Url.AbsoluteUri)
{
Path = Url.Action("Load", "Report"),
Query = null,
};
Uri uri = urlBuilder.Uri;
string url = urlBuilder.ToString();
YourModel.URL = url;
在您的view.cshtml中做类似的事情
<a href="@Model.URL " target="_blank">reports</a>
您应该已经看过vs的智识-
由于它接受arguments- ActionName
, ControllerName
, RouteValues
其中routeValues
是object
类型的第三个参数,它接受路由值,即new{id=9,name="foobar"}
哪里的方法会像-
[HttpGet]
Public ActionResult Get(int id, string name)
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.