我在使用带有url的iModelBinder格式为
时遇到问题http://localhost/controller/action/id/value
动作将是控制器中的功能 id /值是ie。 ID = 12
当我尝试上面的链接时,我收到一个404错误页面未找到,看着堆栈我可以理解MVC正在寻找一条它不理解的路径。
使用以下作品
http://localhost/controller/action?id=value
如果有人知道这个问题是否可以解决,我真的希望能够使用“/”作为分隔符。
文斯
答案 0 :(得分:1)
网址应该采用以下格式:
http://localhost/controller/action/id
例如:
http://localhost/products/index/1
然后应在控制器操作中指定id。例如:
public ActionResult Index(int id)
{
...
global.asax文件中指定的路由将指定url的格式。对于上面的url,默认路由就足够了:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
然后默认的模型绑定器会自动将您的id(即上面的url中的1)绑定到操作中的int id。
就像Adam建议的那样,我认为你不应该在url中指定id的名称,因为默认的模型绑定器会自动为你绑定。