Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用属性设置.Net HTML服务器控件的值_C#_Html_Properties - Fatal编程技术网

C# 使用属性设置.Net HTML服务器控件的值

C# 使用属性设置.Net HTML服务器控件的值,c#,html,properties,C#,Html,Properties,使用属性获取或设置.Net HTML服务器控件上的字段是否有任何缺点 HTML 不,使用属性来设置和获取控件值可能是一个很好的解决方案,而不仅仅是针对HTMLControl。在使用时,我已经多次以这种方式使用它们 下面是MVP模式的一个示例 型号: 视图、标记: 演讲者 <span id="aSpan" runat="server"></span> public string AProperty { get { return aSpan.InnerHtml

使用属性获取或设置.Net HTML服务器控件上的字段是否有任何缺点

HTML


不,使用属性来设置和获取控件值可能是一个很好的解决方案,而不仅仅是针对HTMLControl。在使用时,我已经多次以这种方式使用它们

下面是MVP模式的一个示例

型号:

视图、标记:

演讲者

<span id="aSpan" runat="server"></span>
public string AProperty 
{
  get {
    return aSpan.InnerHtml;
  }

  set {
    aSpan.InnerHtml = value;   
  }
}
public interface IPresentationModel
{
    string AProperty { set; }
    string ATextbox { get; set; }
    event EventHandler SaveData;
    event EventHandler LoadData;
}
    <form id="form1" runat="server">
    <div>
        <span id="aSpan" runat="server"></span>
        <input type="text" id="aTextbox" runat="server"/>
        <asp:Button ID="ButtonSave" runat="server" Text="Save" OnClick="ButtonSave_Click" />
    </div>
    </form>
public partial class View : Page, IPresentationModel
{
    private Presenter _presenter;

    protected override void OnInitComplete(EventArgs e)
    {
        base.OnInitComplete(e);
        _presenter = new Presenter(this);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LoadData(this, e);
        }
    }

    public string AProperty
    {
        set
        {
            aSpan.InnerHtml = value;
        }
    }

    public string ATextbox
    {
        get
        {
            return aTextbox.Value;
        }
        set
        {
            aTextbox.Value = value;
        }
    }

    public event EventHandler SaveData;
    public event EventHandler LoadData;

    protected void ButtonSave_Click(object sender, EventArgs e)
    {
        SaveData(this, e);
        LoadData(this, e);
    }
}
public class Presenter
{
    private readonly IPresentationModel _model;
    private static string _fakeService = "42";

    public Presenter(IPresentationModel model)
    {
        _model = model;
        _model.SaveData += SaveData;
        _model.LoadData += LoadData;
    }

    private void LoadData(object sender, EventArgs e)
    {
        _model.AProperty = _fakeService;
        _model.ATextbox = _fakeService;
    }

    private void SaveData(object sender, EventArgs e)
    {
        _fakeService = _model.ATextbox;
    }
}