Max*_*oro 4 asp.net asp.net-mvc asp.net-mvc-3
鉴于这条路线:
routes.MapRoute("home", "{action}/{id}",
new { controller = "home", action = "index", id = UrlParameter.Optional });
Run Code Online (Sandbox Code Playgroud)
......这个动作:
public ActionResult Hi(string id) {
return Content("hello, id: " + id);
}
Run Code Online (Sandbox Code Playgroud)
问题#1 回复是什么:
GET http://localhost:2247/hi/7?id=55 HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
问题#2 回复是什么:
POST http://localhost:2247/hi/7?id=55 HTTP/1.1
Content-Length: 4
Content-Type: application/x-www-form-urlencoded
id=3
Run Code Online (Sandbox Code Playgroud)
[AttributeUsage(AttributeTargets.Parameter)]
public sealed class FromRouteAttribute : CustomModelBinderAttribute, IModelBinder {
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) {
bindingContext.ValueProvider = new RouteDataValueProvider(controllerContext);
return ModelBinders.Binders.DefaultBinder.BindModel(controllerContext, bindingContext);
}
public override IModelBinder GetBinder() {
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
...你可以像这样使用:
public ActionResult Hi([FromRoute]string id) {
return Content("hello, id: " + id);
}
Run Code Online (Sandbox Code Playgroud)
在ASP.NET MVC 3 RC2中:
这是测试视图:
<a href="/hi/7?id=55">GET</a>
<form action="/hi/7?id=55" method="POST">
<input type="hidden" name="id" value="3" />
<input type="submit" value="POST" />
</form>
Run Code Online (Sandbox Code Playgroud)
所以这是评估优先顺序:
顺便说一下,使用ASP.NET MVC 2.0可以获得完全相同的结果.
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |