模型字段属性未在视图中显示值

时间:2019-07-14 15:05:06

标签: c# html asp.net-mvc

我正在创建此MVC站点,但遇到一个问题,当模型值到达View时,模型值未显示。调试时,我看到属性在模型,voidMethod和控制器中都设置了值。但是,在进入“视图”时,标题的值显示为空。

型号

Public class tbl
{
    public string headline { get; set; }

}

设置属性值的VoidMethod:

Public class voidmethods
{
    Public tbl getHeadline()
    {
        tbl t =new tbl();
        t.headline="hello";
        return tbl;
    }
}

控制器:

Public ActionResult Inedx()
{
    voidmethods voidmethods = new voidmethods();
    voidmethods.getHeadline();
    return view();

}

查看

<h>@Html.DisplayFor(m=>m.headline)</h>

2 个答案:

答案 0 :(得分:1)

控制器应该像这样将视图模型发送回视图

public ActionResult Inedx()
{
    tbl tbl= new tbl();
    tbl.getHeadline();
    return view(tbl);

}

还记得在视图中引用模型

@model //your model namespace here

在您的tbl类中设置属性,这样tbl类就会变成

public class tbl
{
    public string headline { get; set; }
    public string getHeadline()
    {
        headline="hello";
        return headline;
    }
}

另一种选择是在控制器中进行设置

public ActionResult Inedx()
{
    tbl tbl= new tbl();
    tbl.headline = "Hello";
    return view(tbl);

}

答案 1 :(得分:1)

您需要将模型voidmethods.getHeadline()传递给视图 并且鉴于您需要使用这些模型来打印headline

型号

    public class tbl
    {
        public string headline { get; set; }
    }

    public class voidmethods
    {
        public tbl getHeadline()
        {
            tbl t =new tbl();
            t.headline="hello";
            return t;
        }
    }

控制器

 [HttpGet]
    public ActionResult Index()
    {
        voidmethods voidmethods = new voidmethods();
        var model= voidmethods.getHeadline();
        return View(model);
    }

voidmethods.getHeadline()返回tbl的实例时,您需要在视图上使用相同的tbl 查看

@model HelloWorldMvcApp.tbl
<body>
    <h>@Html.DisplayFor(m=>m.headline)</h>
</body>

DEMO