![]() |
1
0
使用反射几乎是MVC模型绑定器设置要做的,我猜您没有正确地命名字段,所以当它们返回到您的操作时,它们没有映射到您的参数。尝试做如下的事情:
那么您的字段(HTML)的名称应该如下所示:
|
![]() |
2
0
我认为调用html.textbox和html.validationmessage时缺少必要的前缀。我推荐 不 使用vb的“with”关键字,因为它会隐藏成员的全名。HTML助手和模型绑定(用于将参数传递到操作方法)都需要属性或字段的全名才能检索值。 试试这个:
另外,对于传递到文本框中的值,也不需要调用html.encode()——它无论如何都会自动编码。 |
![]() |
3
0
经过大量的测试和调试,我发现了一些有趣的东西:我可以从传递到搜索函数的FormCollection中检索用户输入的信息。最初我的搜索函数取了2个参数。第一个参数是应绑定到PersonSearchModel.SearchCriteria的PersonModel,第二个参数是视图的FormCollection。 我可以根据传递到搜索函数的FormCollection创建用于PersonSearchModel.SearchCriteria的PersonModel。我删除了第一个参数(personmodel),因为它总是一个新的/空的对象。 这是我当前的搜索方法:
我的观点(如果你好奇的话)如下:
这个解决方案有效,但我真的不满意。 为什么我必须重新创建用作搜索条件的个人模型? 为什么不能将此对象作为参数传递到搜索方法中? -弗林尼 |
![]() |
4
0
似乎updateModel()可能是您的朋友。MVC不会围绕Web窗体样式传递对象。 即使模型由两个对象组成,也完全可以使用updateModel来检索其中一个对象的值。您只需将该对象指定为参数即可。例如。:
您可能需要查看参数名以允许MVC正确猜测。 此外,出于安全原因,您可能必须将属性列入白名单和/或避免过于热衷于模型验证。 |