我无法理解这一个。我有Html.DropDownList
,我只想在Html.Display
项目中显示所选项目的值。
模型
public class MyModel
{
private List<string> _items = null;
private string _selectedItems = string.Empty;
public MyModel()
{
_items = new List<string> { "item1", "item2", "item3" };
_selectedItems = _items[0];
}
public List<string> Items { get { return _items; } }
public string SelectedItem
{
get{ return _selectedItems; }
set { if (_selectedItems != value) { _selectedItems = value; } }
}
}
查看
@model MyModel
@Html.DropDownListFor(model => model.SelectedItem, new
SelectList(@Model.Items), new { onchange = "SelectedItemChanged(this);" })
@Html.DisplayFor(model => model.SelectedItem)
控制人员的行动
[HttpPost]
public ActionResult OnSelectedItemChanged(string itemName)
{
return View("Index", new MyModel { SelectedItem = itemName });
}
我使用ajax来调用控制器的方法 - 在我的视图中,在我的脚本部分中:
function SelectedItemChanged(selectObj) {
itemName = selectObj.value;
$.ajax({
type: 'POST',
url: '@Url.Action("OnSelectedItemChanged","Home")',
data: { 'itemName': itemName },
});
}
控制器被正确调用,但由于某种原因,浏览器显示的视图不会更新,文本字段仍显示初始&#34; item1&#34;值。怎么样?
我还应该注意,查看&#34;响应&#34; ajax请求的选项卡,响应html正确更新!
我做错了什么?