如何使用Razor MVC从这个多选下拉列表中获得价值



我正在使用Javascript自定义表单插件,并试图在用户发布回Edit视图后直接在模型中获取选定的值。

这是视图的代码。

<select asp-for="Details.CityIdCsv" class="form-control custom-select" placeholder="Select Area" id="assignCity" multiple
data-jcf='{"wrapNative": false, "wrapNativeOnMobile": false, "useCustomScroll": true, "multipleCompactStyle": true}'>
<option class="hideme">Select City</option>
@if (city != null)
{
foreach (var list in city)
{
foreach (var item in ViewBag.cityList)
{
if (item.Id == list)
{
<option value="@item.Id" selected> @item.Name </option>
}
else
{
<option value="@item.Id"> @item.Name </option>
}
}
}
}
else
{
foreach (var item in ViewBag.cityList)
{
<option value="@item.Id"> @item.Name </option>
}
}
</select>

控制器代码为

public async Task<IActionResult> Edit(string id)
{
if (!ModelState.IsValid)
JsonErrorResponse(ModelState);

var APIRequest = new CityRetrieveRequest
{
StateId = null
};
var result = await DropdownHelpers.CityRetrive(APIRequest);
if (result != null)
ViewBag.cityList = result.Data;
var response = await UserManagementHelpers.UserRetriveById(this.Crypto.Decrypt(id));
if (response.StatusCode != 200)
JsonErrorResponse(response.Message);
return View("~/Views/GA/Edit.cshtml", response);
}

这是POST方法

[HttpPost]
[Route("edit-ga", Name = "Edit GA")]
public async Task<IActionResult> Edit(UserUpdateRequest request)
{
dynamic UpdatedProfile = null;
if (!ModelState.IsValid)
JsonErrorResponse(ModelState);
var APIRequest = new CityRetrieveRequest
{
StateId = null
};
var result = await DropdownHelpers.CityRetrive(APIRequest);
var response = await UserManagementHelpers.UpdateUser(request.Details);
if (response.StatusCode == 200)
{
UpdatedProfile = await UserManagementHelpers.UserRetriveById(request.Details.Id);
}
return View("~/Views/GA/Edit.cshtml", UpdatedProfile);
} 

这是编辑页面,以便首先获得数据并分配到下拉列表,然后需要获得选定的值。

谢谢:(

您的问题中没有提供模型,所以我创建了一个,安装了插件,它就可以工作了。这是回发选定的选项。

我的型号:

public class UserUpdateRequest
{
public Detail Details { get; set;}
}
public class Detail
{
public string[] CityIdCsv { get; set; }
}

我的控制器:

[HttpPost]
public IActionResult Edit(UserUpdateRequest request)
{
}

表单张贴到服务器

Details.CityIdCsv:米兰

Details.CityIdCsv:罗马

在调试模式中,我看到request对象正在获取值。上面的帖子绑定到模型request.Details,生成一个带有城市的字符串数组。

可能是你的路线有其他问题,或者你的模型与表单帖子不匹配,但你的问题中没有包含更多信息来检查。

最新更新