Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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
C# 更新时将所选项目分配到下拉列表;“多重”;_C#_Asp.net Mvc_Razor Pages_Razorengine - Fatal编程技术网

C# 更新时将所选项目分配到下拉列表;“多重”;

C# 更新时将所选项目分配到下拉列表;“多重”;,c#,asp.net-mvc,razor-pages,razorengine,C#,Asp.net Mvc,Razor Pages,Razorengine,我有一个HTML.dropdown多选2工作正常。当我保存值时 但是:在更新页面上,我必须在下拉列表中显示预先选择的值 代码如下: <div class="col-md-6 mb-3" id="categorylist"> <p class="mb-1 font-weight-bold text-muted mt-3 mt-md-0">Category*</p> @Html.DropDownList("pCategory[]", new Selec

我有一个HTML.dropdown多选2工作正常。当我保存值时

但是:在更新页面上,我必须在下拉列表中显示预先选择的值

代码如下:

<div class="col-md-6 mb-3" id="categorylist">
   <p class="mb-1 font-weight-bold text-muted mt-3 mt-md-0">Category*</p>
   @Html.DropDownList("pCategory[]", new SelectList(new admin.Models.CategoryModel().getMultipleCategoryBySP(), "cat_id", "cat_name", --placeToProvideSingleIntValue--), 
     new { @class = " form-control select2-multiple ", @data_toggle = "select2", @multiple = "multiple", @style = "width: 100%;" })
</div>

类别*

@Html.DropDownList(“pCategory[]”,新建选择列表(新建admin.Models.CategoryModel().getMultipleCategoryBySP(),“cat_id”,“cat_名称”,--PlaceToProviderSingleIntValue--), 新的{@class=“form control select2 multiple”、@data\u toggle=“select2”、@multiple=“multiple”、@style=“width:100%;”})
在上面的代码中,有一个占位符--placeToProvideSingleIntValue--,我可以在其中放置它显示为预选的单个整数值

所需的解决方案/帮助:我想向它传递一个数组或以其他方式传递多个值。因此,它将显示多个预先选择的值

您将不得不使用一个而不是一个SelectList。差不多

@Html.DropDownList("pCategory[]", new MultiSelectList(new admin.Models.CategoryModel().getMultipleCategoryBySP(), "cat_id", "cat_name", --placeToProvideMultipleIntValue--), 
     new { @class = " form-control select2-multiple ", @data_toggle = "select2", @multiple = "multiple", @style = "width: 100%;" })
Razor pages(靠近Blazor thingy:D)是微软目前最新、最现代的框架之一,因此我认为您应该尽可能地使用标记帮助器 你可以看看样品

因此.cshtml页面上的标记组件看起来应该非常简单,如:

<select asp-for="pCategory" asp-items="items" multiple class="form-control select2-multiple" style="width: 100%;" data_toggle = "select2"></select>
selectedValues
整数数组。 希望有帮助:)

还有一件小事情超出了范围。我觉得这样做不好

new admin.Models.CategoryModel().getMultipleCategoryBySP()
在你的客户端。我认为应该做的正确的事情是只将一个平面对象传递给客户端,并将整个业务逻辑/转换/映射内容保留在后端


干杯

你试过这个吗?“我也能帮上忙。”荷花先生,我真是太感谢你了。这解决了我的问题。非常感谢:);)
new admin.Models.CategoryModel().getMultipleCategoryBySP()