繁体   English   中英

Asp.net MVC Url.Action使用可空参数重定向控制器

[英]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>

谢谢

采用:

<a href="@Url.Action("Load", "Report", new { id = 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- ActionNameControllerNameRouteValues

在此处输入图片说明

其中routeValuesobject类型的第三个参数,它接受路由值,即new{id=9,name="foobar"}

哪里的方法会像-

[HttpGet]
Public ActionResult Get(int id, string name)
{
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM