4
由于某种原因,无论何时我尝试在ASP.NET MVC3的本地安装中解析带有参数的URL时,参数基本上都会在我的控制器的处理函数中最终成为null
。ASP.NET MVC3 URL参数解析为空
例如,我有
public class HomeController : Controller
{
public ActionResult Foo(string bar)
{
ViewBag.Message = bar;
return View();
}
}
,并尝试访问http://localhost/myapp/foo/sometext
或http://localhost/myapp/home/foo/sometext
,bar
基本评估为null
而不是sometext
。
我相当有信心,我的MVC3安装工作正常,因为我设法运行一个单独的应用程序与几天前的自定义路由规则。我有点担心,我可能会在某处或某处搞乱配置标志。
有什么想法可能是错误吗?
呵呵。这绝对是诀窍,谢谢。然而,我的印象是,我应该能够编写一个控制器函数,如'public ActionResult foo(string herp,string derp){}'然后*自动*通过http:// localhost/myapp/home/foo/1/2 /'或类似的东西。这是否意味着我必须根据参数数量(和参数名称)为每个使用的URL模式创建自定义路由?这听起来不太方便。 –
如果没有自定义路由,您将无法通过'http:// localhost/myapp/home/foo/1/2 /'导航到类似'public ActionResult foo(string herp,string derp)但只要您有“herp”和“derp”文本框,您就可以通过HTTP POST向表单提交表单,而无需设置自定义路由。根据我的经验,在一个给定的项目中提出一些满足我所有路由需求的约定并不困难,但这取决于您的要求。 – gram
是的,我想从长远来看实际上想出路由规则并不难。这只是一个难以忍受的忍受,特别是因为我的MVC体验来自CakePHP和CodeIgniter。但别介意我。 :D感谢您的帮助! –