首页 > 解决方案 > 如何从 MVC 控件获取数据到 CSHTML

问题描述

我提前为我的错误道歉,因为我是论坛和 .net 的新手

我正在使用 asp.net、c#、mvc5、EF6、db first 开发应用程序

我的问题是我想在控制器端使用cshtml中的sql语句返回,我无法访问cshtml中查询后发生的变量;

提前感谢帮助者

控制器:OFISController.cs;

public ActionResult Index2()
{       sql = "SELECT * FROM OFIS o "
              + "left join OFISFIRMABAGLA ofb on ofb.OFID = o.OFID "
              + "left join FIRMA f on f.FID = ofb.FID";
    var qOFIS = db.Database.SqlQuery<DbSet>(sql);
    if (qOFIS == null) HttpNotFound();
   
   return View(qOFIS.ToList());

}

查看:Index2.cshml;

@model IEnumerable<ildemavm3.Controllers.OFISsController>

...

<td>@Html.DisplayFor(modelItem => item.??????  )</td>

标签: asp.netasp.net-mvcentity-framework

解决方案


首先根据查询为返回结果创建模型类:示例:

namespace ildemavm3.Models
{
    public class SampleData
    {
        public string Name {get; set;}
        public string Address{get; set;}
    }
}

请注意选择查询必须与上面的模型类具有相同的属性名称

控制器:OFISController.cs;

public ActionResult Index2()
{
    sql = "SELECT **Name,Address** FROM OFIS o "
              + "left join OFISFIRMABAGLA ofb on ofb.OFID = o.OFID "
              + "left join FIRMA f on f.FID = ofb.FID";
    var qOFIS = db.Database.SqlQuery<SampleData>(sql);
    if (qOFIS == null) HttpNotFound();
   
    return View(qOFIS.ToList());

}

var qOFIS = db.Database.SqlQuery< SampleData >(sql);

像上面一样更新模型类,我在开始时创建了SampleData模型类

更改视图:Index2.cshml 如下;

@model IEnumerable<**ildemavm3.Models.SampleData**>
...
<td>@Html.DisplayFor(modelItem => item.**Name** )</td>

推荐阅读