【发布时间】:2017-06-24 13:08:09
【问题描述】:
我希望有链接链接这个 /查看/测试 只有当它像 /View/1 一样 int 时它才有效
我的视图操作链接
@Html.ActionLink(item.className, "Viewe", "subject", new {id =item.className },null)
我的控制动作
public ViewResult Viewe(string id)
{
//some database
return View();
}
我收到此错误Server Error in '/' Application.
如果我将 id 更改为任何它可以正常工作但链接看起来像
这:查看?anything=par
错误图片
路线代码
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
【问题讨论】:
-
检查 App_Start 下的 Route.Config 文件。您将找到处理路线的代码 sn-p。默认情况下,它接受
controller/action/id。为了接受“anything”作为参数并形成用户友好的 URL,您需要创建自定义路由并将“id”参数替换为“anything”。 -
我仍然有同样的问题我不在乎我是否将参数用作“id”或“anything”,id 对我来说很好,但我仍然有同样的错误
-
不要使用动作名称
View,您正在隐藏View控制器方法的无参数版本,它将尝试查找具有动作对应名称的.cshtml文件。您最好采用以下方式:[ActionName("View")] public ViewResult ViewAction(string id) -
请拍下错误描述的快照并在上面的帖子中分享。这样会更有帮助。
-
我已经用错误图像更新了问题,并且我已经更改了视图但仍然没有运气
标签: asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 razor