ASP.NET MVC3 URL参数解析为null

时间:2011-07-05 19:37:42

标签: asp.net-mvc-3

出于某种原因,每当我尝试在本地安装的ASP.NET MVC3中使用参数解析URL时,参数基本上最终都是我的控制器处理函数中的null

例如,我有

public class HomeController : Controller 
{
    public ActionResult Foo(string bar)
    {
        ViewBag.Message = bar;
        return View();
    }
}

并尝试访问http://localhost/myapp/foo/sometexthttp://localhost/myapp/home/foo/sometextbar基本上评估为null而不是sometext

我非常有信心我的MVC3安装工作正常,因为我已经设法在几天前运行一个带有自定义路由规则的单独应用程序。我有点担心,我可能会在某处或其他任何地方搞砸配置标志。

关于这里可能出现什么问题的任何想法?

1 个答案:

答案 0 :(得分:8)

默认路由映射需要在您的操作中使用名为id的参数。

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

如果您将操作更改为:

public ActionResult Foo(string id)

它应该有用。如果无法更改参数名称,您也可以尝试这样的URL:

http://localhost/myapp/home/foo/?bar=sometext