Asp.net mvc 如何在ASP.NET MVC 3中允许错误的url

Asp.net mvc 如何在ASP.NET MVC 3中允许错误的url,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我想在url空白中传递一个参数,但本地主机服务器告诉我这是一个错误的url。我能让它们在MVC3中工作吗 网址是 http://localhost:6251/time/saturdau/first/second//nextparameter 您可以看到第三个参数在这里为空。当第四个参数通过而不通过第三个参数时,此请求可以工作 我做了些什么来让它工作。这是不允许的。您可以有可选参数,但它们必须是URL中的最后一个段。你不能在中间有一个可选的参数。 这是不允许的。您可以有可选参数,但它们必须是UR

我想在url空白中传递一个参数,但本地主机服务器告诉我这是一个错误的url。我能让它们在MVC3中工作吗

网址是

http://localhost:6251/time/saturdau/first/second//nextparameter
您可以看到第三个参数在这里为空。当第四个参数通过而不通过第三个参数时,此请求可以工作


我做了些什么来让它工作。

这是不允许的。您可以有可选参数,但它们必须是URL中的最后一个段。你不能在中间有一个可选的参数。 这是不允许的。您可以有可选参数,但它们必须是URL中的最后一个段。你不能在中间有一个可选的参数。 更确切地说,在这个问题上,你可以做一个约定,如果传递的参数为null,你可以尝试传递类似于my_conventional_null_指示器的内容

所以与其让它看起来像这样

http://localhost:6251/time/saturdau/value1/34//70
这样做

http://localhost:6251/time/saturdau/value1/34/my_conventional_null_indicator/70
但最好的方式仍然是传统方式

http://localhost:6251/time/saturdau?param1=value1&param2=34&param3=&param4=70

或者更好的方法是最大化RouteValueDictionary的功能。

相反,要解决这个问题,比如说,如果传递的参数为null,您可以尝试传递类似my_Conditional_null_指示器的内容

所以与其让它看起来像这样

http://localhost:6251/time/saturdau/value1/34//70
这样做

http://localhost:6251/time/saturdau/value1/34/my_conventional_null_indicator/70
但最好的方式仍然是传统方式

http://localhost:6251/time/saturdau?param1=value1&param2=34&param3=&param4=70

或者更好的方法是最大化RouteValueDictionary的功能。

问题不应该是为什么我不能做这件坏事,问题应该是你为什么做这件坏事?这有实际的原因吗?问题不应该是我为什么不能做这件坏事,问题应该是你为什么做这件坏事?这有实际原因吗?是的,我对此很感兴趣,但第四个参数是pagenum,第三个是他们想要的值。解决方法是从路由中删除页码,然后从查询字符串中获取它……或者您可以将页码默认为1。我写了一篇文章,在yeah I thing上也有类似的问题,但第四个参数是pagenum,第三个是他们想要的东西的值。解决方法是从路由中删除页码,然后从查询字符串中获取它……或者您可以将页码默认为1。我写了一篇关于类似问题的帖子