Asp.net MVC正确获取json数据,但不能显示在视图页面上

本文关键字:显示 但不能 视图 数据 MVC net json 获取 Asp | 更新日期: 2023-09-27 18:09:04

我是。net MVC的初学者。我想我的问题与路由设置有关。

我想做的是:我从数据库中获取数据,在控制器中将数据传输到json格式并传递给视图,使用javascript解码json数据并显示在html上。

当我在TechnologyController下写方法时,键入localhost:portnumber/Technology/Index,没有html格式的解码json数据,但如果我键入localhost:portnumber/Technology/GetJson它显示了一个纯json数据的页面(这意味着如果我单独调用GetJson()方法,它可以工作)

我在HomeController中写了同样的代码,它运行正确,所有的路由设置都是默认的:路线。MapRoute ("Default",//路由名"{controller}/{action}/{id}",//带参数的URLnew {controller = "Home", action = "Index", id = UrlParameter。可选}//参数默认值

);

//这是我的控制器

public class TechnologyController : Controller
{
public ActionResult Index()
{
return View();
}
public JsonResult GetJson() 
{
Technology myTech = new Technology(); //get data from database (Tested correct) 
return Json(myTech.select(), JsonRequestBehavior.AllowGet);
}
}

//这是Javascript:

<script type="text/javascript">
$(document).ready(function() {
$.getJSON("Technology/GetJson/", null, function(data) {
sss.innerHTML+=data["title"];// this part is correct (I already tested,please ignore), the purpose is to parse json data to html. 
.......
}
)};
)};

我明白如果我调用"localhost:portnumber/Technology/Index",它只执行索引方法,这就是为什么不调用GetJson方法,但是我应该调用什么url才能调用Index()以及GetJson。

Asp.net MVC正确获取json数据,但不能显示在视图页面上

类似于

$.getJSON("@Url.Action("GetJson","Technology"), null, function(data) {
编辑2 -

如果没有Razor,它会是这样的:

$.getJSON("<%= Url.Action("GetJson","Technology") %>, null, function(data) {

编辑-

等等,你想调用索引和GetJson?这应该已经发生了,只需加载/index页面调用索引控制器动作,然后在渲染脚本从那里调用GJson动作。为什么你认为你需要再次调用Index呢?

我想你的方法没有被击中,因为url是不正确的。抓取fiddler*,并查看实际的http流量,看看它是否在请求上是404。

*(一旦fiddler运行更改您的url为http://localhost:port/.....http://localhost:港口/…)

我想你可以修改"index"方法,以便从"GetJSon"方法中获取数据,如下所示。

 public ActionResult Index() 
 {  
     return View("GetJson"); 
 }

希望这有帮助!!

相关文章: