Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc EditorTemplate中未绑定的DropDownList_Asp.net Mvc - Fatal编程技术网

Asp.net mvc EditorTemplate中未绑定的DropDownList

Asp.net mvc EditorTemplate中未绑定的DropDownList,asp.net-mvc,Asp.net Mvc,我找不到DropDownListFor绑定到我的模型。DisplayOrder返回null,VarietyFamilyID始终为0。我有未知数量的对象要编辑,因此我尝试使用EditorTemplate 编辑模板视图 @model Wysocki_Variety_Management.Models.Image <div> @Html.HiddenFor(i=>i.ImageStreamID) @Model.helperString @Html.DropDown

我找不到DropDownListFor绑定到我的模型。DisplayOrder返回null,VarietyFamilyID始终为0。我有未知数量的对象要编辑,因此我尝试使用EditorTemplate

编辑模板视图

@model Wysocki_Variety_Management.Models.Image

<div>
   @Html.HiddenFor(i=>i.ImageStreamID)
   @Model.helperString
   @Html.DropDownListFor(i=>i.DisplayOrder, new SelectList(ViewBag.DisplayOptions, "Key", "Value"))
   @Html.DropDownListFor(i => i.VarietyFamilyID, new SelectList(ViewBag.Variety, "VarietyFamilyID", "Name"))
   @Ajax.ActionLink("Try Me",
                        "UpdateImage",
                        "Images",
                         new { s = Model.ImageStreamID, dislplayOrder = Model.DisplayOrder, familyID = Model.VarietyFamilyID },
                         new AjaxOptions {})
</div>
编辑

对否决票或评论没有把握。当我使用EditorTemplate和@Html.EditorForModel时,我会为模型的每个成员获得多个输入

<form action="/Images/UpdateImage" method="post">   <div>
      <div>
   <input data-val="true" data-val-required="The Guid field is required." name="[0].ImageStreamID" type="hidden" value="e48aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[0].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[0].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option>

</select>
   <a data-ajax="true" href="/Images/UpdateImage?s=e48aab34-0fe6-e511-8ebf-005056c00008&amp;dislplayOrder=0&amp;familyID=0">Try Me</a>
</div><div>
   <input data-val="true" data-val-required="The Guid field is required." name="[1].ImageStreamID" type="hidden" value="e58aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[1].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[1].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option>

</select>
   <a data-ajax="true" href="/Images/UpdateImage?s=e58aab34-0fe6-e511-8ebf-005056c00008&amp;dislplayOrder=0&amp;familyID=0">Try Me</a>
</div><div>
   <input data-val="true" data-val-required="The Guid field is required." name="[2].ImageStreamID" type="hidden" value="e68aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[2].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[2].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option><option value="331">A02507-2LB</option>

</select>
   <a data-ajax="true" href="/Images/UpdateImage?s=e68aab34-0fe6-e511-8ebf-005056c00008&amp;dislplayOrder=0&amp;familyID=0">Try Me</a>
</div><div>
   <input data-val="true" data-val-required="The Guid field is required." name="[3].ImageStreamID" type="hidden" value="e78aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[3].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[3].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option>

块茎
种植
营销
芬娜
林泽·德里卡泰斯
侯爵
普罗旺托
罗科
75-11-15短跑
阿莱格里亚
块茎
种植
营销
芬娜
林泽·德里卡泰斯
侯爵
普罗旺托
罗科
75-11-15短跑
阿莱格里亚
块茎
种植
营销
芬娜
林泽·德里卡泰斯
侯爵
普罗旺托
罗科
75-11-15短跑
Alegriaaa02507-2LB
块茎
种植
营销
芬娜
林泽·德里卡泰斯
侯爵
普罗旺托
罗科
75-11-15短跑
阿莱格里亚

您视图中的模型是
IEnumerable
,因此为了在提交表单时绑定,必须

[HttpPost]
public ActionResult UpdateImage(IEnumerable<Image> model)
[HttpPost]
公共行动结果更新图像(IEnumerable模型)
模型将包含3个正确绑定的
图像
对象

表单根据成功表单控件的
name
value
属性回发名称/值对,并且
DefaultModelBinder
与您的参数和模型属性匹配。当前,方法中的参数是
Guid s、int displayOrder、int familyID
,并且可以将值绑定到这些参数的唯一方法是,如果表单包含带有
name=“s”
name=“displayOrder”
name=“familyID”
的控件


请注意,在
EditorTemplate
中使用
@Ajax.ActionLink()
只会回发模型的初始值。如果要发布表单控件的值,则需要提交表单。

我有未知数量的对象要编辑是什么意思?除非模型是
IEnumerable
,否则所显示的视图仅渲染一个对象。在这种情况下,POST方法中的模型也必须是
IEnumerable
,请参见更新的答案。再次阅读您的问题,我只能假设您的想法是,
Ajax.ActionLink()
会将表单控件的值发送到您的方法-不会。谢谢您的解释。总有一天我会弄明白的。
<form action="/Images/UpdateImage" method="post">   <div>
      <div>
   <input data-val="true" data-val-required="The Guid field is required." name="[0].ImageStreamID" type="hidden" value="e48aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[0].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[0].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option>

</select>
   <a data-ajax="true" href="/Images/UpdateImage?s=e48aab34-0fe6-e511-8ebf-005056c00008&amp;dislplayOrder=0&amp;familyID=0">Try Me</a>
</div><div>
   <input data-val="true" data-val-required="The Guid field is required." name="[1].ImageStreamID" type="hidden" value="e58aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[1].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[1].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option>

</select>
   <a data-ajax="true" href="/Images/UpdateImage?s=e58aab34-0fe6-e511-8ebf-005056c00008&amp;dislplayOrder=0&amp;familyID=0">Try Me</a>
</div><div>
   <input data-val="true" data-val-required="The Guid field is required." name="[2].ImageStreamID" type="hidden" value="e68aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[2].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[2].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option><option value="331">A02507-2LB</option>

</select>
   <a data-ajax="true" href="/Images/UpdateImage?s=e68aab34-0fe6-e511-8ebf-005056c00008&amp;dislplayOrder=0&amp;familyID=0">Try Me</a>
</div><div>
   <input data-val="true" data-val-required="The Guid field is required." name="[3].ImageStreamID" type="hidden" value="e78aab34-0fe6-e511-8ebf-005056c00008" />

   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[3].DisplayOrder"><option value="312">Tuber</option>
<option value="313">Plant</option>
<option value="314">Marketing</option>
</select>
   <select data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." name="[3].VarietyFamilyID"><option value="0">Fianna</option>
<option value="0">Linzer Delikatesse</option>
<option value="3">Markies</option>
<option value="0">Provento</option>
<option value="5">Roko</option>
<option value="6">75-11-15 Sprint</option>
<option value="7">Alegria</option>
[HttpPost]
public ActionResult UpdateImage(IEnumerable<Image> model)