[英]Update Model property from Controller in Asp.Net MVC
我有一個HTML dropdownList
,當前顯示來自模型的數據,現在對於某些操作,我想更改dropdownList
內容。 我想如果我更新模型,它也會反映出來。 下面是我的模型代碼
視圖模型
public class CaseAssignmentRuleSetViewModel
{
public CaseAssignmentRuleSetViewModel()
{
}
public int id { get; set; }
public string name { get; set; }
public Dictionary<string, string> AssignmentUsers { get; set; }
}
因此,在viewModel
它是一個dictionary
,它是視圖中dropdownList
來源,如下所示。
視圖
<select name="assignmentTeam" class="form-control case-assignment-use-type-value2" placeholder="Select a User">
@foreach (string key in Model.AssignmentUsers.Keys)
{
<option value="@key">@Model.AssignmentUsers[key]</option>
}
</select>
最后,經過一些操作,我得到了使用JQuery函數返回到Controller
方法的新列表,如下所示。
調節器
[HttpPost, Route("CaseAssignmentRuleSet/ListofAssignees", Name = "ListofAssignees")]
public List<string> SetListofAssignees(string [] listOfAssignedroles)
{
CaseAssignmentRuleViewModel caseAssignmentRuleViewModel = new CaseAssignmentRuleViewModel();
List<string> listOfAssignees = new List<string>();
if (listOfAssignedroles!= null)
{
listOfAssignees = new List<string>(listOfAssignedroles);
}
return listOfAssignees;
}
如何使用新的項目列表更新我的dropdownList
?
因此,當您說要使用jquery函數重新調整新列表時,我假設您正在做的是對控制器進行ajax調用。
如果是這樣,則在ajax調用的完成功能上,清除當前列表,然后遍歷新列表並添加新選項:(偽代碼)
$.ajax( '/CaseAssignmentRuleSet/ListofAssignee' )
.done(function(data) {
//get the select element, you should really add an ID to the element to select instead of name but whatever
var $el = $('[name=assignmentTeam]');
//clear the current select list options
$el.empty();
//iterate through your new options and add them to the select list
$.each(data, function(key,value) {
$el.append($("<option></option>").attr("value", value).text(value));
});
}).fail(function() {alert( "error" );}).always(function() {//alert( "complete" );});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.