我正在编写一个ASP.NET MVC 4应用程序。我对网络编程环境比较陌生;我想我掌握了模型和控制器部件的要点,包括存储库和工作单元模式。但是我在客户方面迷失了方向。假设我的控制器中有这个动作方法:
//I have a Brand table in my Entity framework model
public ActionResult GetBrands()
{
var result = _unitOfWork.BrandRepository.GetBrands();
return Json(result, JsonRequestBehavior.AllowGet);
}
我迷失了Javascript,Ajax和JQueryUI。我在主视图(Index.cshtml)中创建了一个静态JQueryUI selectmenu:
<select name="brands" id="brands">
<option>Brand1</option>
<option>Brand2</option>
<option selected="selected">Brand3</option>
<option>Brand4</option>
<option>Brand5</option>
</select>
如何调用我的操作方法来填充品牌的选择菜单?
答案 0 :(得分:1)
由于我不知道“BrandRepository”的内容是什么,这是一般答案。
如果你设置使用jquery和json填充它,这是一个例子:
<script type="text/javascript">
$(function() { //only call when the DOM is ready
alert('DOM is ready!');
$.getJSON("/MyController/GetBrands/", function(result) {
alert('The controller action got hit successfully');
var options = $("#brands");
options.html(''); //clears the current options
alert('The result was: ' + JSON.stringify(result));
$.each(result, function(i, item) {
options.append('<option id="' + item.Id + '">' + item.Name '</option>');
});
});
});
</script>
这假设品牌在有效的json中由 Id 和名称组成。