Mvc4 Querystring参数不起作用

时间:2013-08-12 09:31:42

标签: asp.net asp.net-mvc-4 asp.net-mvc-routing

在Asp.net MVC4中,我创建了以下URL,显示IIS8.0的错误

  

的http:// {ParentURL} /地区/管理员/菜单/索引actoin =添加

请帮帮我。

2 个答案:

答案 0 :(得分:0)

您的网址http://{ParentURL}/Areas/Admin/Menu/Index?mode=Add转到:

区域管理员

控制器:菜单

操作+查看索引

参数:模式

所以在MenuController.cs(在Admin区域下)你应该有这个:

public ActionResult Index(string mode)
{
   //code
   return View();
}

<强>更新

将您的网址更改为:http://{ParentURL}/Admin/Menu/Index?mode=Add

您的Action的参数必须与路径声明中的名称相同。 另一个错误是在您的网址中使用Areas,您可以删除它或更改默认路由。

控制器:

public ActionResult Index(string mode)
{
   return View(ViewMenuModel);
}

查看:

var JsSuccessAction = '@Url.Content("~/Admin/Menu/Index?mode=Add")';

路线:

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } );
}

答案 1 :(得分:0)

您需要在路由配置中设置路由:

context.MapRoute(
    "Areas",
    "Areas/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional }
);

将此添加到您的root配置中并尝试..将起作用