相关疑难解决方法(0)

ASP.NET MVC和ViewState

现在我已经看到了这样的一些问题,但这并不是我想要问的问题,所以对于所有那些尖叫的复制品,我道歉:).

我几乎没有碰过ASP.NET MVC,但据我所知,没有ViewState/ControlState ......很好.所以我的问题是保留控件状态的替代方法是什么?我们是否可以回到旧学校ASP,在那里我们可以通过创建具有控件状态的隐藏表单输入来模拟ASP.NET ViewState/ControlState所做的事情,或者使用MVC,我们只是假设AJAX始终并保留所有状态客户端并制作AJAX要求更新?

这个问题有一些答案,在Asp.net mvc维护viewstate?,但不完全是我在答案中寻找的东西.

更新:感谢目前为止的所有答案.只是为了清理我不想要的东西和我正在寻找的东西:

不寻找:

  • 会话解决方案
  • Cookie解决方案
  • 不想在MVC中模仿WebForms

我在/正在寻找什么:

  • 如果数据没有反弹到控件,则仅在回发时保留状态的方法.认为WebForms的方案是仅在初始页面加载时绑定网格,即仅在必要时重新绑定数据.正如我所提到的,我并不是想模仿WebForms,只是想知道MVC提供了什么机制.

viewstate ajax asp.net-mvc asp.net-mvc-2

17
推荐指数
1
解决办法
1万
查看次数

维护ASP.NET MVC中动态的复选框列表的状态

我有一个名为"PropertyFeature"的类,它只包含PropertyFeatureID和Description.它是通过映射到SQL Server数据库表的LINQ to SQL创建的正确模型.示例实例/行将是:

PropertyFeatureID: 2
Description: "Swimming Pool"
Run Code Online (Sandbox Code Playgroud)

行数(PropertyFeatures)当然可以增长和缩小,因此我想动态呈现一个复选框列表,以便用户可以选择其中任何一个.我可以很容易地动态渲染Checkbox,例如:

<%foreach (var Feature in (ViewData["Features"] as IEnumerable<MySolution.Models.PropertyFeature>)) { %>
<%=Html.CheckBox("Features", new { @id = Feature.PropertyFeatureID, @value = Feature.PropertyFeatureID })%><label for="Feature<%=Feature.PropertyFeatureID%>"><%=Feature.Description%></label>
<%}%>
Run Code Online (Sandbox Code Playgroud)

我为每个复选框指定ID并呈现匹配的标签,以便用户可以直观地单击标签并切换复选框 - 这很有效.

我将CheckBox的"名称"设置为"Features",因此所有复选框都以相同的名称呈现,并且MVC Model Binder在发布表单时将它们堆叠到一个名为"Features"的集合中.这很好用.

提交表单后,我使用选中的值并存储它们,因此我需要实际的整数值,因此我知道选择了哪个PropertyFeature,而不仅仅是一堆布尔值和字段名称.理想情况下,我希望它可以作为一个易于使用的数组或集合.

单击按钮时,我可以从Controller方法中检索所选值,因为我已将参数指定为int [] Features.

但问题是它没有维持状态.也就是说,当我单击提交按钮并重新加载页面(再次显示该表单)时,我希望所有动态复选框保持其已检查状态(或不保持).所有这一切我已经创造了其他领域Html.DropDownList,并Html.TextBox都保持自己的状态没有任何成功都在同一页上以相同的形式问题.

我花了几个小时阅读关于类似问题的所有其他线程和文章,并且有很多关于使用ICollectionIDictionary捆绑的内容,并为每个项目包含一个布尔值,以便它可以保持复选框状态.但我并没有100%掌握如何在我个人的例子中使用它.我想保持解决方案非常简单,不必为了保持我的复选框状态而编写新类的页面.

这样做最干净,最恰当的方法是什么?

checkbox asp.net-mvc binding state viewmodel

10
推荐指数
1
解决办法
1万
查看次数