下面是我的代码,在编译时遇到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”分配给它 是只读的
答案 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。在这种情况下,HttpContext
和ModelState
需要通过对象构造函数设置,并且没有公共setter。