当前位置: 首页 > 编程语言 > C#

在ASP.NETMVC3中将模型变量绑定到Action方法分享

时间:2023-04-10 23:03:05 C#

在ASP.NETMVC3中将模型变量绑定到Action方法){//用myViewModel做点什么}ViewModel:publicclassMyViewModel{publicstringName{get;放;}publicstring姓氏{get;放;}publicboolIsPeriod{得到;放;}}下面是View@modelAppName.ViewModels.MyViewModel@{Html.RenderPartial("MyPartialView",Model);我按照此处所述使用Url.Action,但我在DisplayData操作方法中得到的是null。在我得到的源代码中:所以它实际上传递的是类型而不是值。相反,ViewModel被正确地传递给局部视图。我究竟做错了什么?我通常将以下内容添加到我的模型中:publicclassMyViewModel{publicstringName{get;放;}publicstring姓氏{get;放;}publicboolIsPeriod{得到;放;}publicRouteValueDictionaryRouteValues{get{varrvd=newRouteValueDictionary();rvd["名称"]=名称;rvd["姓氏"]=姓氏;rvd["isPeriod"]=IsPeriod;返回rvd;)使用RouteValues属性调用。或者,如果您更喜欢更少(显式)代码,请忽略模型更改并简单地执行此操作:它不会将整个对象序列化为查询字符串,您必须显式设置每个值,即new{nameFilter=@Model.Name,@Model.Surname,@Model.IsPeriod}如果您的参数在路由中没有被称为Name,您只需要提供一个nameFilter。您正在尝试创建与整个视图模型的imgsrc链接,我认为这不是您想要的。相反,您将通过您的模型表示的任何ID作为链接上的查询字符串参数(过滤器)。因此,例如使用...来呈现类似...然后您可以在操作中使用Id来查找要显示的资源。如果你想按描述传递模型,你必须覆盖ViewModel类的ToString()方法,因为这就是为什么将ViewModel对象传递给Url.Action方法会返回这样一个链接。此外,如果要将ViewModel传递给Action,则必须准备“http://url/Action?Name=x&Surname=y&IsPerion=0”形式的链接,以便ModelBinder能够识别它并绑定到Action参数。你试过这个吗?以上就是C#学习教程:BindingModelvariablestotheActionmethodinASP.NETMVC3。如果对大家有用,需要进一步了解C#学习教程,还望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: