簡體   English   中英

ASP.NET MVC 3服務器端驗證因ViewModel中的下拉列表集合而失敗

[英]ASP.NET MVC 3 Server Side Validation Fails with Dropdown list collections in ViewModel

我有一個視圖,該視圖的類型嚴格到視圖模型,該視圖模型包含通過頁面上的表單提交的數據的屬性,以及用於填充我的下拉列表的集合。

在發布后,我檢查模型狀態是否有效,如果不是,我返回視圖,但是我得到一個空引用,因為視圖模型不再包含下拉列表的集合值。

在再次返回表單視圖之前,是否需要重新填充viewmodel的下拉列表集合?

控制器方式:

[HttpPost]
    public ActionResult Create(UserProfileCreateViewModel viewModel)
    {
        if (ModelState.IsValid)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        return View();
    }

是的,你必須。 Http是無狀態協議,ASP.NET MVC沒有回發或視圖狀態的概念。

如果ModelState.IsValid設置為false則應該重新創建適當的對象並將其發送回去。

是的,您需要補充水分。 綁定到模型的唯一內容是在表單發布中提交的內容。 因此,您可能會從下拉列表中而不是整個下拉列表中獲得所選項目的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM