[英]How to implement a traffic light functionality in asp.net mvc 2 web application?
[英]How to implement View Model functionality in ASP.net Web Site
我正在使用asp.NET网站-这是我不习惯的。 我的页面上有大量的asp:Textbox
控件,都带有runat="server"
,并且我的DataTable
充满了它们的值。 基本上,我想实现某种类似于MVC模型的功能,以便可以将值分配给每个textbox
。
因此,有几个问题:
- 有什么办法可以以最佳实践的方式做到这一点? (不想使用会话等)
- 如果不是,那么有人可以建议一种更好的方法吗?
textbox
之一的外观如下:
<asp:Textbox runat="server" class="number" name="ns_loanAmt" id="ns_loanAmt" value="???" />
这个问题似乎已经很老了,由于某种原因,它已经过编辑,因此也许有人可能仍然对此感兴趣。
我想知道为什么OP没有考虑内置的Web表单绑定。 尽管如今我主要使用MVC,但多年来,我们都使用ASP.NET数据绑定开发了数十个应用程序,并且它确实可以工作。
在这种特殊情况下,我将创建一个类作为单个文本框的模型。 该类将包含值,CSS类,可能还包含其他一些属性。
public class RowModel
{
public string Text { get; set; }
public string CSSClass { get; set; }
...
}
然后,我将有一个中继器,一个gridview或一个listview,并将一个文本框放在行模板中。
<asp:ListView ID="listView1" runat="server">
...
<ItemTemplate>
<asp:TextBox id="textBox" runat="server"
cssclass="<%# CSSClass %>" Text="<%# Text %>" />
</ItemTemplate>
然后,在后面的代码中,我将模型实例列表绑定到可绑定控件。
List<RowModel> rowList;
...
if ( !this.IsPostBack )
{
listView1.DataSource = rowList;
listView1.DataBind();
}
甚至创建ObjectDataSource
并进行声明式绑定。
然后,在每次回发时,都可以读取POSTed值列表并将其放回数据库中。
ASP.NET Web窗体绑定始终有效,并且由于具有自动视图状态管理,因此特定方案甚至比手动的,类似于MVC的状态管理要简单得多。 例如,列表视图中提供的插入和编辑模板很容易切换,这在普通MVC中需要付出一些努力(尽管您可以更好地控制发生的事情)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.