bal*_*dre 5 parameter-passing viewmodel asp.net-mvc-2
我正在将一个复杂的对象传递Model给Viewas

但是当我从View中获取Model时,一个特定的对象总会出现,null而其他复杂类型通常会被传递

我的视图是默认的Edit强类型视图

我错过了什么?
该ModelState中错误说
从类型'System.String'到类型'Julekalender.Database.CalendarInfo'的参数转换失败,因为没有类型转换器可以在这些类型之间进行转换.
为什么我不能为其他类型获得相同的?它是如何自动转换的?
我加入了3个字段(如T4模板不追加这个类型),但是当我仍然得到空POST荷兰国际集团
下面的绿色框是字段
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Calendar.Guid)%>
</div>
Run Code Online (Sandbox Code Playgroud)

甚至将Action重命名为
[HttpPost]
public ActionResult General2(GeneralInfo model)
Run Code Online (Sandbox Code Playgroud)
给出了同样的错误

确保当您使用此向导时,在视图中为日历对象的每个属性生成输入字段,以便当您发布表单时,它们将被发送到控制器操作。我不确定情况是否如此(尚未验证向导是否对复杂对象执行此操作,我从未使用过此向导)。
在生成的 HTML 中,您应该具有:
<input type="text" name="Calendar.Prop1" value="prop1 value" />
<input type="text" name="Calendar.Prop2" value="prop2 value" />
... and so on for each property you expect to get back in the post action
... of course those could be hidden fields if you don't want them to be editable
Run Code Online (Sandbox Code Playgroud)
更新:
问题来自于这样一个事实:您calendar的操作方法中调用了一个字符串变量,而一个对象的属性调用Calendar令人困惑。尝试重命名它:
[HttpPost]
public ActionResult General2(string calendarModel, GeneralInfo model)
Run Code Online (Sandbox Code Playgroud)
另外不要忘记在您的视图中重命名它。
| 归档时间: |
|
| 查看次数: |
1379 次 |
| 最近记录: |