【问题标题】:View is not displaying returned data from controller in MVC视图不显示从 MVC 中的控制器返回的数据
【发布时间】:2016-04-11 21:28:35
【问题描述】:

我正在通过 HttpClient (Json) 从控制台应用程序向 Web 应用程序发送数据,一切正常,但我面临的唯一问题是从控制器发送到视图的数据未显示。我调试了程序,我可以看到数据返回到视图中。以下是代码:

控制器:

using ( var db = new MessageDBContext())
{
    try
    {
        db.Messages.Add(model);
        db.SaveChanges();
    }
    catch (DbEntityValidationException e)
    {
        Debug.WriteLine("Saving Messages into db Error 1: " + e.EntityValidationErrors);
    }
}
return View(model);

控制器调试:

这是查看代码:

<table class="table table-striped">
    <thead>
        <tr>
            <th>Message</th>
            <th>Time</th>
        </tr>
    </thead>
    <tbody>
        @if (Model != null)
        {
            <tr>
                <td>
                    @Html.Display(@Model.message)
                </td>
                <td>
                    @Html.Display(@Model.time)
                </td>
            </tr>
        }
    </tbody>
</table>

查看调试:

那么为什么数据没有显示到 html 视图中!?

【问题讨论】:

  • 为什么需要使用Html.Display helper,为什么不简单的写出结果&lt;td&gt;@Model.message&lt;/td&gt;
  • @Kane 它不工作我试过了:(
  • 你试过 DisplayFor 吗?
  • @SergiiZhevzhyk 这行不通,我做到了
  • 您确定将模型传递给正确的视图吗?您的调试器显示该表具有 id="treatmentTable" 但您的视图代码没有。

标签: c# html asp.net-mvc model-view-controller


【解决方案1】:

你必须使用这种情况之一:

 @if (Model != null)
    {
        <tr>
            <td>
                @Html.DisplayFor(model => model.message)
            </td>
            <td>
                @* Or *@
                @Model.time
            </td>
        </tr>
    }

【讨论】:

    【解决方案2】:

    我会为这个问题添加一些信息。控制器方法(显示在问题中)用 HttpPost 属性标记并从控制台应用程序调用。当然,结果会返回到控制台而不是浏览器。在浏览器中,控制器返回空模型return View(); 否则,DisplayFor 方法将完美运行。如果要更新浏览器中的显示,则需要编写更多代码来建立服务器->客户端通信。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      相关资源
      最近更新 更多