我想在mvc3 .cshtm文件中编写一些sql查询(插入/更新)并相应地执行操作。我是新手,所以我需要帮助。 提前谢谢
答案 0 :(得分:1)
你可以这样做:
@{
// You C# code here querying the database
}
但是这是非常糟糕的做法,此类操作是Contoller
的作用。
在MVC中,您的控制器获取并组织数据并将数据发送到View
。然后View
的作用是仅向最终用户显示数据。
如果您的数据很复杂,您可以(必须)使用ViewModel
(Views and ViewModels)。
您还可以使用ViewBag, ViewData, or TempData。
<强>更新强>
using (var context = new BloggingContext())
{
var blogs = context.Blogs.ToList();
foreach (var item in blogs)
{
// Display blog for example
}
}
如果您使用的是EntityFramework,可以找到更多详细信息on their Home page
答案 1 :(得分:0)
cshtml文件是ASP.NET MVC中的视图文件。因此,您不会将数据访问代码放在视图中,因为它会违反设计模式;视图应该是愚蠢的,并且应该给出他们向最终用户显示表示所需的数据。
控制器应与模型交互以获取数据并将其传递给视图。一般做法是使用强类型ViewModel传递此数据,例如
public class MyController : Controller
{
public ActionResult Index()
{
// your data access code here
ViewModel model = someDataAccessCode.GetItemsForView();
return View(model);
}
}
然后在〜/ Views / My /
中有一个名为Index.cshtml的视图@model ViewModel
@* Display data in the view model *@
如果您 非常希望 将数据访问代码放入视图中,那么您可以使用服务器端脚本块来执行此操作。对于Razor视图,这些是
@{
var data = someDataAccessCode.GetItemsForView();
}
@* Display data in the view model *@
但我不建议这样做。