爲了讓我的問題更易於理解,我附加了一個包含視圖,模型和控制器腳本的屏幕截圖。請點擊下面的鏈接查看截圖。MVC搜索框驗證和視圖中的多個模型
http://ithighway.co.uk/others/ProblemMVC.gif
謝謝!
注:爲了保持簡單,我從控制器和視圖中刪除了一些行和註釋。
爲了讓我的問題更易於理解,我附加了一個包含視圖,模型和控制器腳本的屏幕截圖。請點擊下面的鏈接查看截圖。MVC搜索框驗證和視圖中的多個模型
http://ithighway.co.uk/others/ProblemMVC.gif
謝謝!
注:爲了保持簡單,我從控制器和視圖中刪除了一些行和註釋。
在您的Action方法中,您沒有獲得SearchBox模型。首先,您需要在Action方法中獲取模型,然後檢查Model.IsValid,如果該條件失敗,則只需返回模型即可查看。這將確保它會顯示錯誤。
話雖如此,這是服務器端驗證。你也可以做一個client side validation using JQuery。
看起來您忘記了將@model MvcBlog.Models.User.SeachBox
聲明放在_SeachBox.cshtml的頂部。 (這就是爲什麼你有model.txtSearch
下的紅線)
部分視圖需要這個聲明來知道它有什麼類型的模型。
我也會使用Html.TextBoxFor而不是Html.TextBox作爲實際的搜索字段。這將強制將您的ViewModel綁定到您的視圖。
其實我使用的是模型MvcBlog.Models.User.ManageCategoriesViewModel,如果我在_SeachBox視圖中使用模型MvcBlog.Models.User.SeachBox,它會產生錯誤。 – Shandar
您在_SearchBox局部視圖上使用MvcBlog.Models.User.ManageCategoriesViewModel?在你的截圖中你不是。如果你是那會是錯的。它看起來像你在主(父)視圖上使用MvcBlog.Models.User.ManageCategoriesViewModel,這是正確的。 –
我無法確定您的屏幕截圖,但您有父視圖,然後是部分視圖是否正確?父視圖應該使用MvcBlog.Models.User.ManageCategoriesViewModel,並且部分_SearchBox視圖應該使用MvcBlog.Models.User.SearchBox –
如何獲得搜索框模型的實際操作? – Shandar