MVC - 使用C#用Json Action Result填充ViewBag

A B*_*gus 6 c# asp.net-mvc actionresult viewbag

我有一个MVC网站,后面有C#代码.我正在使用一个返回Json的ActionResult.

我试图在ViewBag中放一些东西,但似乎不起作用.

代码看起来像这样 -

    public ActionResult GetStuff(string id)
    {
        ViewBag.Id = id;

        stuff = new StuffFromDatabase(id);

        return this.Json(stuff , JsonRequestBehavior.AllowGet);
    }
Run Code Online (Sandbox Code Playgroud)

"id"未出现在ViewBag.Id中.

我可以用这种方式将id放入ViewBag吗?如果没有关于我应该如何做的任何建议?谢谢!

Rob*_*ito 4

另一个解决方案可以是这样的:如果您想在返回 json 结果的 post 操作之后访问“id”属性,您可以返回一个包含所有所需数据的复杂对象:

public ActionResult GetStuff(string id)  
{  
    ViewBag.Id = id;  

    stuff = new StuffFromDatabase(id);  

    return this.Json(new { stuff = stuff, id = id } , JsonRequestBehavior.AllowGet);  
} 
Run Code Online (Sandbox Code Playgroud)

之后,在 json 返回值中,您可以访问所有属性,如下例所示:

$.post(action, function(returnedJson) {
   var id = returnedJson.id;
   var stuff = returnedJson.stuff;
});
Run Code Online (Sandbox Code Playgroud)