【发布时间】:2011-07-23 12:50:15
【问题描述】:
我的视图模型有一个强类型视图,其中包含一个对象 Person 和一个技能列表。人很直接。我使用像 @Html.TextBoxFor(m => m.Person.FirstName) 这样的 Html Helpers。我提交表单并得到我想要的。
问题是我的技能列表。
通过 AJAX 调用,我得到一个 JSON 结果,它是一个技能数组。
我应该如何将技能和人员的组合发送到我的 HTTPPOST 方法?
我看到了两种可能性。
-
我喜欢的,但不知道如何以正确的方式实现: 不知何故设法将此 JSON 结果放入我的视图模型 (
List<Skill> skilllist) 并使用标准提交按钮和像这样在我的 HTTPPOST 方法中接收它。 (见内联 cmets)[HttpPost] public ActionResult RegisterPersonAndSkills(PersonSkillViewModel model) { // I can acces the Person object and its properties string firstname = model.Person.FirstName; // It would be awesome if I could access the list which used to be a JSONresult string skillname = model.SkillList[0].SkillName return null; } 尝试将表单中的所有内容(Person 对象部分)转换、序列化为 JSON 结果,将我拥有的技能 json 结果数组插入到该序列化视图模型中,并通过模型绑定方式接收模型。与上述 post 方法的结果相同。同样,我不确定如何实现这一点以及如何处理可能的验证问题。将 Person 的每个属性序列化为 JSON,并将 Person 对象和技能数组添加到 JSON PersonSkillViewModel 似乎需要做很多工作。
你会如何解决这个问题?
或者是根本不可能在一个参数中获得两个结果?
【问题讨论】:
标签: jquery asp.net-mvc json asp.net-mvc-3 model-binding