我想将List传递给我在asp.net mvc应用程序中的jquery函数,并想在jquery函数中进行itterate。我必须做什么。
编辑:在此处添加了我的代码
脚本:
$.getJSON('/LoadTest/GetAllQuestionsForTest', function(data) {
$.each(data, function() {
alert("hi");
});
});
控制器:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetAllQuestionsForTest()
{
int testId = 1;
int id = Convert.ToInt32(testId);
List<Question> questionList;
questionList = questionManager.GetquestionsByTestId(id);
return Json(questionList,JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:1)
您可以将列表序列化为JSON对象,然后遍历它:
<script type="text/javascript">
var list = <%= new JavaScriptSerializer().Serialize(Model.YourList) %>;
$.each(list, function(index, element) {
// TODO: Do something with the element.
});
</script>
另一种可能性是在AJAX请求中获取此列表:
<script type="text/javascript">
$.getJSON('<%= Url.Action("GetMyList") %>', function(result) {
$.each(result, function(index, element) {
// TODO: Do something with the element.
});
});
</script>
答案 1 :(得分:0)
您可以从MVC操作返回JsonResult。
List<MyObject> myList = /* get the data */
return Json(myList);
这假设您的对象将很好地序列化而没有任何复杂性。如果对象很复杂,您可能希望使用JavaScriptSerializer自行序列化并返回内容操作结果。
您可能希望查看的另一个序列化程序是json.net
答案 2 :(得分:0)
jQuery最终是Javascript,它无法理解CLR类型,因此可以将很多格式应用于您的数据(手头的对象),比如将它们序列化为JSON,以便客户端的jQuery可以理解它。
对于JSON,HERE是这个非常有用的网站,可以验证您的JSON表示法,以确保它有效并正确表示。
答案 3 :(得分:0)
在你的MVC应用程序中,你可以得到一个JsonResult:
public JsonResult MyAction()
{
var myList = GetMyList();
return Json(myList);
}
然后在jQuery中,您可以将控制器作为AJAX请求调用并迭代它们:
$.getJSON('/Controller/MyAction',function(data){
$.each(data, function(){
console.log(this);
});
});
示例:http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/
答案 4 :(得分:0)
您可以从动作方法返回JsonResult,如:
return new JsonResult{Data= lstObjects}; // lstObjects is the collection/list of objects.
然后迭代你可以获得$.each(...)
函数或noraml for{}..
循环的帮助。但$ .each(...)将为您提供比大型集合更好的性能。