ASP.NET MVC中Controller.ReadFromRequest的替代是什么?

时间:2008-08-30 15:55:20

标签: c# asp.net-mvc .net-3.5 entity-framework-ctp5

我正在尝试将项目从ASP.NET MVC Preview 3更新到Preview 5,似乎已从Controller类中删除了Controller.ReadFromRequest(字符串键)。有没有人知道根据表单中的标识符检索信息的任何替代方法?

3 个答案:

答案 0 :(得分:3)

看起来他们已经添加了controller.UpdateModel来解决这个问题,签名是:

UpdateModel(object model, string[] keys)

我没有亲自升级我的应用,所以我不确定实际使用情况。我有兴趣自己找出这个,因为我也在使用controller.ReadFromRequest

答案 1 :(得分:2)

不知道它去了哪里。您可以滚动自己的扩展程序:

public static class MyBindingExtensions {

public static T ReadFromRequest < T > (this Controller controller, string key) 
{
    // Setup
    HttpContextBase context = controller.ControllerContext.HttpContext;
    object val = null;
    T result = default(T);

    // Gaurd
    if (context == null)
        return result; // no point checking request

    // Bind value (check form then query string)
    if (context.Request.Form[key] != null)
        val = context.Request.Form[key];
    if (val == null) 
    {
        if (context.Request.QueryString[key] != null)
            val = context.Request.QueryString[key];
    }

    // Cast value
    if (val != null)
        result = (t)val;

    return result;
}

}

答案 2 :(得分:0)

你可以重做像tinyurl.com这样的链接吗?

我也需要这些信息,但可以让这个超级链接发挥作用。