MVC 用户输入用于存储过程参数的 int x datestart 和 dateend 变量

问题描述

所以我有一个使用实体框架 6 的 mvc 5,我使用了 chinook 数据库。我已经让 mvc 一切正常,我现在必须制作一些 sql 命令,比如从表中显示从 datestart 到 dateend 的 X 记录。我已经创建了 sql 命令,我想将它用作我的 mvc 上的存储过程,但我找不到如何向用户显示

选择INT X

选择日期开始

选择日期

并将他的输入从视图传递到控制器到我的存储过程参数。 我需要通过一些简短的映射来做到这一点吗?

解决方法

假设您有像 ResultSize、DateStart 和 DateEnd 这样的视图模型属性,只需将这些属性映射到存储过程参数:

public ActionResult YourAction(YourViewModel vm)
{
   using (var ctxt = new YourDBContext())
   {
      var yourResultSet = ctxt.Database.SqlQuery<YourViewModel>("EXEC YourSP @param1,@param2,@param3",vm.ResultSize,vm.DateStart,vm.DateEnd).Select(s => new YourViewModel
      {
        //YourViewModel properties from database code here
        DateStart = s.DateStart,//rest of code                  
      }).ToList();
   }
}

希望我已经回答了您的问题。