【问题标题】:ViewBag ASP NET CORE MVC | CallSite.Target(Closure , CallSite , object )ViewBag ASP NET CORE MVC | CallSite.Target(闭包,CallSite,对象)
【发布时间】:2020-12-16 11:39:40
【问题描述】:

我实际上被卡住了,我不明白这个问题。 我的意思是,我真的不明白为什么它不起作用。

这是错误:

& 这是代码,Index.cshtml:

@{
    ViewBag.Title = ViewBag.client.Name;
}
[...]

HomeController.cs:

private readonly CoreDataBase dataBase = new CoreDataBase();
public ActionResult Index()
{
    Client client;

    if (TempData["client"] != null) {
        client = (Client)TempData["client"];
    }
    else {
        client = dataBase.getClient(company);
        TempData["client"] = client;
    }

    ViewBag.client = client;
    [...]
}

你有什么想法吗?

【问题讨论】:

  • 尝试投射对象。
  • @RahulJha 嗨,什么对象以及如何?
  • 请检查您的数据库对象是否正确。它抛出空引用错误,这意味着从 tempdata/db 获取数据的客户端存在问题。 ViewBag.client.Name 没有问题。在下面查看我的示例。
  • 你是用 asp.net mvc 代替 asp.net core mvc 吗?在 asp.net core mvc 中虽然值为 null,但效果很好。

标签: c# .net-core asp.net-core-mvc viewbag


【解决方案1】:

查看错误,对象引用似乎有问题,可能是客户端没有数据。试图重现删除 TempData 部分并将示例数据添加到 Client 对象的错误。它工作正常。见下文。

客户端类

public class Client
    {
        public string Name { get; set; }
    }

家庭控制器:

public IActionResult Index()
        {
            Client client = new Client { Name = "Rahul" };

            ViewBag.client = client;
            return View();
        }

查看:

@{
    ViewData["Title"] = ViewBag.client.Name;

}

<div class="text-center">
    <h1 class="display-4">Welcome <span>@ViewBag.client.Name</span></h1>
    
</div>

输出

【讨论】:

    【解决方案2】:

    好的,现在可以了,这是我修改的内容:

    Client client;
    
    if (HttpContext.Session.GetString("client") != null) 
    {
      client = JsonConvert.DeserializeObject<Client>(HttpContext.Session.GetString("client"));
    }
    else 
    {
      client = dataBase.GetClient(company);
      HttpContext.Session.SetString("client", JsonConvert.SerializeObject(client));
    }
    
    ViewBag.client = client;
    [...]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多