我有这样的控制器:
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.Action上做什么才能将我重定向到带有id的页面?
尝试没有成功:
<a href="@Url.Action("Load", "Report", null, null)">Close Report</a>
由于
答案 0 :(得分:3)
答案 1 :(得分:1)
我按照johnnyRose和Beyers的回答解决了这个问题。
结果是
<a href="@Url.Action("Load", "Report", new { id = "" }, null)">Close Report</a>
非常感谢。
答案 2 :(得分:0)
我似乎无法找到您的代码问题。但是,在尝试加载特定项目时,您不能简单地在模型中设置URL。 在控制器内部的加载函数中执行以下操作:
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>
答案 3 :(得分:0)
你应该查看你的智能感知 -
因为它接受参数 - ActionName
,ControllerName
,RouteValues
routeValues
是object
类型的第三个参数,它接受路由值,即new{id=9,name="foobar"}
方法如何 -
[HttpGet]
Public ActionResult Get(int id, string name)
{
}