c# – 从MVC Controller返回一个字符串到jQuery
发布时间:2020-12-15 18:29:32 所属栏目:百科 来源:网络整理
导读:我想调用ASP.NET MVC4控制器并让它返回一个jQuery方法的字符串,然后输出带有alert()的字符串.下面的代码只输出对象Object. jQuery的: $launchTRs = function (appID) { var html = $.get("/PartialView/GetTRAsString?appID=" + appID,function (data) { })
我想调用ASP.NET MVC4控制器并让它返回一个jQuery方法的字符串,然后输出带有alert()的字符串.下面的代码只输出对象Object.
jQuery的: $launchTRs = function (appID) { var html = $.get("/PartialView/GetTRAsString?appID=" + appID,function (data) { }); alert(html.toString()); } ASP: public string GetTRAsString(string appID) { // Populate revisions string html = "<ul>"; foreach(RevesionInfo revInfo in revisions) { html += "<li>" + revInfo.RevDesc + "</li>"; } html += "</ul>"; return html; } Outut: [object Object] 解决方法
在ASP.NET MVC控制器中,操作不返回字符串.他们返回ActionResults.
因此,首先要修复你的行动(请阅读下面的内容,了解为什么我将修正用斜体,这是因为这只是第一阶段): public ActionResult GetTRAsString(string appID) { // Populate revisions string html = "<ul>"; foreach(RevesionInfo revInfo in revisions) { html += "<li>" + revInfo.RevDesc + "</li>"; } html += "</ul>"; return Content(html,"text/html"); } AJAX中的第一个A字母代表异步,因此您应该将警报放在成功回调中,这是结果可用的唯一位置: $.get('/PartialView/GetTRAsString',{ appID: appID },function (data) { alert(data); }); 还要记住,在控制器动作中生成HTML是一个糟糕的主意.混合C#和HTML导致丑陋,我不想发表评论. 在ASP.NET MVC中,V代表View,所以继续使用它们.控制器操作的目的是获取模型并将此模型传递给视图以进行投影: public ActionResult GetTRAsString(string appID) { IEnumerable<Revision> revisions = ... go get your revisions from the DB or something return PartialView(revisions); } 然后你的视图将被强烈输入到模型中,你将在里面生成必要的标记: @model IEnumerable<Revision> <ul> @foreach (var revInfo in Model) { <li> @revInfo.RevDesc </li> } </ul> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |