【问题标题】:How can I get data from MVC Control's to CSHTML如何从 MVC 控件获取数据到 CSHTML
【发布时间】:2020-10-14 17:50:06
【问题描述】:

我提前为我的错误道歉,因为我是论坛和 .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>

【问题讨论】:

  • 别担心,买一本 C# 和 MVC 的书

标签: asp.net asp.net-mvc entity-framework


【解决方案1】:

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

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.SqlQuerySampleData>(sql);

在这里更新模型类我已经创建了 SampleData 模型类在开始

更改视图:Index2.cshml 如下;

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

【讨论】:

  • 感谢您的解决方案。但我有很多 sql 脚本。我不能为每个人创建一个模型类。
【解决方案2】:

有很多方法可以将数据从 MVC 控制器传递到视图。您可以使用 viewData 或 viewBag,这是一个非常方便且灵活的选项。您可以使用这种方法一次传递多个数据。

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多