我正在使用VS2012,MVC4 C#,SQL 2008 R2
我有一个存储过程,它返回一个包含两个计算列的列表。在我的SP中,我需要从View传递两个参数,这些参数将从页面加载的javascript生成并存储在HiddenFields中。
当我创建像
这样的引用时,我已经遵循了这个PostRest Context = new Rest();
List<Rest> RT = Context.ExecuteStoreQuery......
我收到错误。
有人能告诉我调用存储过程并从View传递值的正确方法。
答案 0 :(得分:1)
这就是我使用模型,视图和控制器进行操作的方法
在我的Model类中,我有两个.cs文件,DefaultConnection.cs和Rest.cs
public class DefaultConnection : DbContext
{
public DbSet<Rest> Restart { get; set; }
}
在Rest.cs中
public class Rest
{
//These two properties are columns in Stored Procedure, Id -PK,
//Distance - Computed column in SP
public int Id { get; set; }
public double Distance { get; set; }
}
在控制器
中Public ActionResult Get_Data()
{
DefaultConnection Context = new DefaultConnection();
IEnumerable<Rest> results = Context.Database.SqlQuery<Rest>
("Your SP @para1 = xyz, @para2 = abc") //If you have parameters or ("Just SP")
.ToList();
return View(results);
}
在视图中
@using MVC.Models
@model IEnumerable<Rest>
@{
ViewBag.Title = "GetData";
}
<h2>GetData</h2>
@foreach (Rest rt in @Model)
{
<table>
<tr>
<td>@rt.Id</td><td></td>
<td>@rt.Distance</td>
</tr>
</table>
}