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

时间:2020-03-05 18:45:28  来源:igfitidea点击:

我正在尝试将项目从ASP.NET MVC预览3更新到预览5,并且似乎Controller.ReadFromRequest(string key)已从Controller类中删除。有人知道基于表单中的标识符检索信息的其他选择吗?

解决方案

回答

不知道它去了哪里。我们可以滚动自己的扩展名:

公共静态类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;
}

}

回答

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

UpdateModel(对象模型,字符串[]键)

我尚未亲自升级我的应用程序,因此我不确定实际使用情况。我也很想自己了解这一点,因为我也在使用controller.ReadFromRequest。

回答

我们可以在tinyurl.com之类的位置重做该链接吗?

我也需要此信息,但可以使该巨型链接正常工作。