2009-09-19 198 views
1

我有一个经典的场景,当一个窗体是从一个操作方法返回一个视图。有没有办法保存下拉列表值

该视图包含一些预填充的下拉列表(如调用某些存储库方法),然后呈现视图并将DTO传递给视图。

当表单发布后,我希望重新呈现相同的视图,而不必再次获取下拉列表的值,这与文本框和其他表单控件如何保持其状态类似。

显然,在发布表单时,只会发布下拉菜单中的选定值。

这样做的最好方法是什么?

回答

0

尝试有两个单独的操作:一个具有AcceptVerbs.Get属性设置,它将用于初始渲染视图。另一个将具有AcceptVerbs.Post属性,并且当POST事件发生时,此操作将触发。

完成后,您可以简单地从Post版返回View()。 ASP.NET MVC引擎足够聪明,不会强制您重新呈现整个视图。

+1

我已经有两个serparate获取和post方法。 所有的值都保存在帖子中,但下拉菜单中。我使用的mvc contrib扩展名如下:<%= this.Select(“CategoryId”)。Label(“Category”)。Options(Model.CategoriList,“Id”,“CategoryName”)。FirstOption(“Choose”) .Selected(Model.CategoryId)%> – Ronnie

+1

好吧,如果您需要重新渲染视图,那么您必须拉取下拉列表项。 SELECT元素的值在发布时将只包含选定的选项值。为了使这更容易,您可以在您的操作方法中使用RedirectToAction,这样您就不必重复代码。 –

相关问题