Asp.net mvc MVC搜索框验证和视图中的多个模型

Asp.net mvc MVC搜索框验证和视图中的多个模型,asp.net-mvc,Asp.net Mvc,为了让我的问题更容易理解,我附加了一个屏幕截图,包含视图、模型和控制器脚本。请单击下面的链接查看屏幕截图 谢谢 注意:为了简化操作,我从控制器和视图中删除了一些行和注释。在您的操作方法中,您没有得到SearchBox模型。首先,您需要在Action方法中获取模型,然后检查model.IsValid,如果该条件失败,只需将模型返回视图即可。这将确保它将显示错误 话虽如此,这是服务器端验证。您还可以执行一个。看起来您忘了将@model MvcBlog.Models.User.SeachBox声明放在

为了让我的问题更容易理解,我附加了一个屏幕截图,包含视图、模型和控制器脚本。请单击下面的链接查看屏幕截图

谢谢


注意:为了简化操作,我从控制器和视图中删除了一些行和注释。

在您的操作方法中,您没有得到SearchBox模型。首先,您需要在Action方法中获取模型,然后检查model.IsValid,如果该条件失败,只需将模型返回视图即可。这将确保它将显示错误


话虽如此,这是服务器端验证。您还可以执行一个。

看起来您忘了将@model MvcBlog.Models.User.SeachBox声明放在_SeachBox.cshtml的顶部。这就是为什么model.txtSearch下面有红线的原因

局部视图需要这个声明来知道它有什么类型的模型


我还将使用Html.TextBox来代替实际搜索字段的Html.TextBox。这将使您的ViewModel与视图紧密绑定。

如何使searchbox模型生效?实际上,我使用的是MvcBlog.Models.User.ManageCompositesViewModel模型,如果我在_SeachBox视图中使用MvcBlog.Models.User.SeachBox模型,它会生成错误。您是否在\ u SearchBox局部视图上使用MvcBlog.Models.User.ManageCategoriesViewModel?在你的截图中,你没有。如果你是,那就错了。看起来您在主父视图上使用的是MvcBlog.Models.User.ManageCategoriesViewModel,这是正确的。我无法从您的屏幕截图确定,但您有一个父视图,然后是一个局部视图,对吗?父视图应使用MvcBlog.Models.User.ManageCategoriesViewModel,而局部搜索框视图应使用MvcBlog.Models.User.SearchBox,因为我已经在父视图中声明了MvcBlog.Models.User.ManageCategoriesViewModel,在部分视图中使用atmodel MvcBlog.Models.User.SearchBox时出现错误。您一定是构建了错误的视图。这就是我们需要做的。你为什么不告诉我你在做什么,而不是说你有错误。