0

我想在 mvc3 .cshtm 文件中编写一些 sql 查询(插入/更新)并相应地执行操作。我是新手,所以我需要帮助。先感谢您

4

2 回答 2

1

你可以做:

@{
   // You C# code here querying the database
}

但这是一个非常不好的做法,这样的操作是你的角色Contoller

在 MVC 中,您的控制器获取和组织数据并将数据发送到View. 那么 的作用View就是只向最终用户显示数据。

如果您的数据很复杂,您可以(必须)使用ViewModelViews 和 ViewModels)。

您还可以使用ViewBag、ViewData 或 TempData

更新:

using (var context = new BloggingContext())
{
    var blogs = context.Blogs.ToList();

    foreach (var item in blogs)
    {
        // Display blog for example
    }
}

如果您使用的是 EntityFramework,您可以在他们的主页上找到更多详细信息

于 2013-09-10T10:43:54.390 回答
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 *@

但我不会推荐这个。

于 2013-09-10T10:51:22.033 回答