在使用帖子ID打开查看页面时,partialview不返回任何项目

时间:2015-06-27 16:45:44

标签: c# asp.net-mvc-5

我在c#上工作MVC 5, 关于运行局部视图的问题。

码,

控制器:

    MiyosContext db= new MiyosContext();
    public ActionResult Index(int id)
    {
        ViewBag.IndexId = id;
        return View();
    }
    public PartialViewResult FirmaList(int id)
    {
        var firmalar = (from b in db.Firmalar
                        where b.Id == id
                        select b).ToList();

        return PartialView(firmalar);
    }

查看:

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_LayoutGenel.cshtml";
}
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {           
        var firmaId = document.getElementById("gelenId").value;
        $('#firmaBilgileri').load("../Firma/FirmaList/" + firmaId);        
    });
</script>
<input type="hidden" value="@ViewBag.FirmaId" id="gelenId" />
<div id="firmaBilgileri">
</div>

部分视图无法使用“int id”。

如果我像这样更换控制器,则没有问题:

public ActionResult Index()
    {
        ViewBag.IndexId = 2;
        return View();
    }

我删除了“int id”并查看了没有帖子的开头。现在它正在运作。为什么使用“int id”阻止局部视图?

注意:它不是关于url post功能。

1 个答案:

答案 0 :(得分:0)

因为需要来自资源网址的id

GET /Firma/Index/2

您可以保留为前者并在浏览器中输入:

http://localhost:portNumber/Firmar/Index/2

它应该与id参数一起使用。

因此,您需要做的就是向load()请求添加查询字符串:

$('#firmaBilgileri').load("/Firma/FirmaList?id=" + firmaId);

确保请求实际上命中MVC控制器。