簡體   English   中英

從Asp.Net MVC中的Controller更新模型屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM