1
我有一個經典的場景,當一個窗體是從一個操作方法返回一個視圖。有沒有辦法保存下拉列表值
該視圖包含一些預填充的下拉列表(如調用某些存儲庫方法),然後呈現視圖並將DTO傳遞給視圖。
當表單發佈後,我希望重新呈現相同的視圖,而不必再次獲取下拉列表的值,這與文本框和其他表單控件如何保持其狀態類似。
顯然,在發佈表單時,只會發佈下拉菜單中的選定值。
這樣做的最好方法是什麼?
我有一個經典的場景,當一個窗體是從一個操作方法返回一個視圖。有沒有辦法保存下拉列表值
該視圖包含一些預填充的下拉列表(如調用某些存儲庫方法),然後呈現視圖並將DTO傳遞給視圖。
當表單發佈後,我希望重新呈現相同的視圖,而不必再次獲取下拉列表的值,這與文本框和其他表單控件如何保持其狀態類似。
顯然,在發佈表單時,只會發佈下拉菜單中的選定值。
這樣做的最好方法是什麼?
嘗試有兩個單獨的操作:一個具有AcceptVerbs.Get屬性設置,它將用於初始渲染視圖。另一個將具有AcceptVerbs.Post屬性,並且當POST事件發生時,此操作將觸發。
完成後,您可以簡單地從Post版返回View()
。 ASP.NET MVC引擎足夠聰明,不會強制您重新呈現整個視圖。
我已經有兩個serparate獲取和post方法。 所有的值都保存在帖子中,但下拉菜單中。我使用的mvc contrib擴展名如下:<%= this.Select(「CategoryId」)。Label(「Category」)。Options(Model.CategoriList,「Id」,「CategoryName」)。FirstOption(「Choose」) .Selected(Model.CategoryId)%> – Ronnie
好吧,如果您需要重新渲染視圖,那麼您必須拉取下拉列表項。 SELECT元素的值在發佈時將只包含選定的選項值。爲了使這更容易,您可以在您的操作方法中使用RedirectToAction,這樣您就不必重複代碼。 –