编译时出现ASP.Net 4.5错误

时间:2014-10-30 17:20:43

标签: c# asp.net

下面是我的代码,在编译时遇到3个错误,如图所示

任何帮助都可以得到赞赏。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.ModelBinding;
using System.Web.UI;

namespace Build01
{
    public static class ModelBindingExtensions
    {

        public static ModelBindingExecutionContext GetModelBindingExecutionContext(this Page page)
        {
            return new ModelBindingExecutionContext
            {
                HttpContext = new HttpContextWrapper(HttpContext.Current),
                ModelState = page.ModelState
            };
        }
    }
}
  

错误1'System.Web.ModelBinding.ModelBindingExecutionContext'可以   不包含带0参数的构造函数错误2属性或   索引器'HttpContext'无法分配 - 它是只读的
  错误3无法将属性或索引器“ModelState”分配给它   是只读的

2 个答案:

答案 0 :(得分:1)

ModelBindingExecutionContext没有带0参数的构造函数。 But it does have one that takes both a HttpContext and a ModelStateDictionary,所以你需要将它们传递给构造函数:

return new ModelBindingExecutionContext(
    new HttpContextWrapper(HttpContext.Current), page.ModelState);

答案 1 :(得分:0)

看起来您使用类构造函数的语法不正确。而不是使用{ }使用( )

    public static ModelBindingExecutionContext GetModelBindingExecutionContext(this Page page)
    {
        return new ModelBindingExecutionContext
        ( // note ( not {
            new HttpContextWrapper(HttpContext.Current),
            page.ModelState
        );
    }

{ }的语法可用于设置类属性,但前提是它们具有公共setter。在这种情况下,HttpContextModelState需要通过对象构造函数设置,并且没有公共setter。