【问题标题】:C#/MVC I am not getting my model value on my View pageC#/MVC 我没有在我的视图页面上获得我的模型值
【发布时间】:2016-08-29 22:36:11
【问题描述】:

这是我的第一个 MVC 项目,我无法让我的视图页面显示来自我的模型的变量值,该变量值由我的控制器传递给视图。在控制器中正确设置了该值,并且在调试中查看时传递给视图的模型包含正确的数据。但视图只显示变量的 name 而不是值。我真的被困住了。这是我的相关代码:

型号:

namespace namespace.Models
{
    public class LatestRunInfoModel
    {
        public string LastRunDate { get; set; }
    }
}

助手类:

public static class Helpers
        {
            public static string GetLastRunInfo()
            {
                _OracleConnectionString = dbConnect.OraCianbroC9i_ConnectionString;
                using (OracleDataAdapter b = new OracleDataAdapter("ME.Namespace.Function", _OracleConnectionString))
                {
                    b.SelectCommand.Parameters.Add(new OracleParameter("pResults", OracleDbType.RefCursor)).Direction = ParameterDirection.Output;
                    DataTable tbl1 = new DataTable();
                    b.SelectCommand.CommandType = CommandType.StoredProcedure;
                    try
                    {
                        b.Fill(tbl1);
                        string rundate = tbl1.Rows[0]["LAST_RUN_DATE"].ToString();
                        string runby = tbl1.Rows[0]["LAST_RUN_USER"].ToString();
                        return rundate.ToString();
                    }
                    finally
                    { }
                }
            }
        }

设置变量的控制器动作:

 public ActionResult About()
        {
            ViewBag.Message = "Message";


            xxx.HLP_Vitality.BLL.myfunction("XXXXX", 18, 2016, true);


            LatestRunInfoModel myViewModel = new LatestRunInfoModel();
            myViewModel.LastRunDate = company.xxxx.BLL.Helpers.GetLastRunInfo();


            return View(myViewModel);
        }

查看并尝试显示变量值:

 <td><label id="lblfdhdr">File Destination: </label>@Html.LabelFor(m => Model.LastRunDate)</td>

希望有人可以提供帮助,我觉得我真的很接近,只需要一点点推动。

编辑:我不得不删除一些个人信息和类似的东西。忽略事物的名称,只是我视图上的显示代码不起作用。 提前致谢!

【问题讨论】:

  • LabelFor() 显示属性的名称,而不是其值。如果要显示该值,请使用@Html.DisplayFor()(请注意,&lt;label&gt; 是与表单控件关联的可访问元素 - 您对第一个元素使用 &lt;label&gt; 也不合适)

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


【解决方案1】:

LabelFor() 显示属性的名称而不是应该使用的值@Html.DisplayFor()

请查看此链接

Why should I use LabelFor in MVC?

还有

When should I use Html.Displayfor in MVC

【讨论】:

  • hmmm...我实际上只是通过使用“ValueFor”来实现这个工作(奇迹般地)。这是我唯一需要改变的。在这个过程中,我完全明白了你刚才所说的话。我想 ValueFor 和 DisplayFor 都可以吗?感谢您的回答。
  • 好的,我明白你的意思了。 DisplayFor 也处理格式。
  • 是的,你是对的 DisplayFor 也处理格式
  • 只有在构建自己的 HTML 帮助程序扩展时才应使用 ValueFor,如果您得到期望的答案,请标记此答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 2011-11-17
相关资源
最近更新 更多