我在SQL Server中执行的存储过程返回以下信息:
我展示了到目前为止我所做的工作。
型号
public class TarjetasInformativas
{
public string PrimerNombre { get; set; }
public decimal PrimerMonto { get; set; }
}
在其中建立到数据库的连接的类
public class DatosTarjetasInformativas
{
public List<TarjetasInformativas> RetornarNombres()
{
List<TarjetasInformativas> objTarjetas = new List<TarjetasInformativas>();
using(SqlConnection sqlConnection = new SqlConnection("Data Source=HN123; Initial Catalog=DBTEST; Integrated Security=True"))
{
string query = "SP_TARJETASINFORMATIVAS";
SqlCommand cmd = new SqlCommand(query, sqlConnection);
cmd.CommandType = CommandType.StoredProcedure;
sqlConnection.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
objTarjetas.Add(new TarjetasInformativas()
{
PrimerNombre = dr["ENTIDADES"].ToString(),
PrimerMonto = decimal.Parse(dr["MONTO"].ToString()),
});
}
}
}
return objTarjetas;
}
}
主计长
public ActionResult ObtenerNombres()
{
DatosTarjetasInformativas objDTTarjetas = new DatosTarjetasInformativas();
List<TarjetasInformativas> objTarjetas = objDTTarjetas.RetornarNombres();
return View(objTarjetas);
}
视图
@model WebPlantillaOpexLTE.Models.TarjetasInformativas
<div class="col-lg-3 col-6">
<!-- small box -->
<div class="small-box bg-info">
<div class="inner">
<h3>@Html.LabelFor(m => m.PrimerNombre)</h3>
<p>@Html.LabelFor(m => m.PrimerMonto)</p>
</div>
<div class="icon">
<i class="ion ion-android-locate"></i>
</div>
</div>
</div>
在视图的h3和p标记中,我希望从SQL Server存储过程中获取信息。
通过Html.LabelFor
helper,我只能获取在模型中声明的变量,并且需要在卡中显示SQL Server存储过程的内容。
如果有疑问,在我的模型中,我通过断点与存储过程相关联,我已经验证了它接收到了信息。
我是这个平台的新手,我想知道我能做些什么来解决我的问题。
我提前感谢你花时间关注我的问题和帮助。
2条答案
按热度按时间q8l4jmvw1#
因此,在您的Razor视图中有几件事是错误的。
1.@model应该是
List<WebPlantillaOpexLTE.Models.TarjetasInformativas>
类型,因为这是SP函数的返回类型,并且模型返回到视图。1.要显示列表的内容,应该使用foreach循环来迭代模型,如下所示(可能包含语法错误):
参考资料:https://learn.microsoft.com/en-us/aspnet/core/mvc/views/overview?view=aspnetcore-7.0
aamkag612#
我达到了要求,但是我对我的控制器做了一些修改,删除了我的类,我用实体框架做了这件事。
我显示我的控制器,在我的模型和视图没有任何变化,除了什么是纠正了第一个答案。