Asp.Net MVC实体通过id从数据库传递值并指定为变量

时间:2017-01-08 03:21:47

标签: asp.net-mvc

我在这里尝试做的是通过其id从我的数据库获取值并设置该值,以便我可以用来进行计算。所以我把id设置为1,我有钱,我想做一些像SELECT Balance FROM My_Table WHERE Id = 1;有没有办法只使用实体框架?

到目前为止,我所做的是。

在我的DbEntity Model类中。

public partial class CurrentAccount
{
    public int Id { get; set; }
    public decimal Balance { get; set; }               
}

在我的控制器中。

public class YourAccountsController : Controller
{
    // GET: YourAccount
    public ActionResult CurrentAccount(CurrentAccount ca)
    {
        return View(ca.Balance);
    }
}

我不太担心视图atm,因为我可以看到在我的本地人中为Balance分配了db值并且atm balance设置为0。

enter image description here

2 个答案:

答案 0 :(得分:2)

如果使用Entity Framework更好。

你的行动

public ActionResult CurrentAccount(int Id)
{
  var model = context.CurrentAccounts.FirstOrDefault(_ => _.Id == id);

    return view(model);
}

并使用路由传递id参数,例如:localhost:5277/YourAccounts/CurrentAccount/1

答案 1 :(得分:1)

这是一个GET操作,所以理想情况下你应该将一些信息传递给这个方法(例如:一个唯一的id),并且有一些代码使用这个唯一的id来从数据存储(你的db表或web)获取数据因为您使用的是EF,所以您可以使用它来获取数据。

public ActionResult CurrentAccount(int Id)
{
   var item= myDbContext.CurrentAccounts.FirstOrDefault(x=>x.Id);
   if(item!=null)
   {
     return View(item.Balance);
   }
   return Content("Account not found"); // To do: May be return a view      
}

假设myDbContext是数据库上下文类的对象,CurrentAccounts是DbSet集合(DbSet<CurrentAccount>)属性,并且您的CurrentAccount视图强类型为十进制类型。< / p>

现在您使用帐户ID访问该网址。例如:yourSite/yourController/CurrentAccount/1