C# 使用属性设置.Net HTML服务器控件的值
使用属性获取或设置.Net HTML服务器控件上的字段是否有任何缺点 HTMLC# 使用属性设置.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
不,使用属性来设置和获取控件值可能是一个很好的解决方案,而不仅仅是针对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;
}
}