View不显示MVC中控制器返回的数据

时间:2015-12-02 09:41:18

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

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

Constroller:

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);

控制器调试:

Debugg controller

这是视图代码:

<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>

查看调试:

View Debugg

那么为什么数据不会显示在html视图中??

2 个答案:

答案 0 :(得分:1)

您必须使用以下一种情况:

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

答案 1 :(得分:1)

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