从mvc2中的模型中检索值

时间:2013-07-01 06:44:03

标签: asp.net-mvc-2 controller repository

我不知道如何创建函数来检索值。

* 表1: OrgVasplans *

-Id

-vasplanId

-OrgId

-CreatedDate

表-2:血管计划

-Id

-name

-AMOUNT

-validity

-vasdurationId

表-3:血管充盈

编号

持续时间。

这些是我的桌子..

我的控制器名为 Candidatesvas ,操作方法 VasDetails ....

我已将值存储到 vasPlans 表中。

当我点击“详情”链接时,会转到详情页面..

然后自动从“Orgvasplans”表中检索值而不输入任何输入..

如何为此创建方法....

我创建了一些方法,但该方法只包含名称“字段”。我想要检索多个值,如“金额”,“有效性”,就像那样......

存储库:

    public IQueryable<VasPlan> GetVasPlans()
    {
        return from vasplan in _db.VasPlans
               orderby vasplan.Name ascending
               select vasplan;
    }


  public OrgVasPlan GetOrgVasPlan(int id)
    {
        return _db.OrgVasPlans.SingleOrDefault(v => v.Id == id);
    }

    public int AddOrgVasPlan(OrgVasPlan orgvasplan)
    {
        _db.OrgVasPlans.AddObject(orgvasplan);
        Save();
        return orgvasplan.Id;
    }

    public void AddVasPlan(VasPlan vasPlan)
    {
        _db.VasPlans.AddObject(vasPlan);
    }

控制器

   public ActionResult VasDetails(FormCollection collection)
    {
        OrgVasPlan orgvasplan = new OrgVasPlan();
        orgvasplan.CreatedDate = DateTime.Now;
        orgvasplan.OrgId = LoggedInOrganization.Id;
        orgvasplan.vasplanId=??????????????

        VasPlan vasplan = new VasPlan();
        //if (!string.IsNullOrEmpty(collection["Name"])) ;

        _repository.AddOrgVasPlan(orgvasplan);
        _repository.Save();            
        return View();
    }

在这里我不知道如何在这里放置代码以获取多个值来形成vasplans表(金额,名称,有效性等...) 这是我的问题...

1 个答案:

答案 0 :(得分:0)

使您的视图具有强类型,确保创建名称与模型属性相对应的输入元素(或使用HTML帮助程序,例如Html.TextBoxFor(model => model.Amount)。这样,MVC将在操作时自动为您填写模型应该将模型作为参数进行调用。

例如,您的行动应该是:

public ActionResult NewVasPlan(VasPlan vplan)
{
    //check model state
    //save or return error messages
}

或者您可以简单地将字符串和int参数添加到Action中,如下所示:

public ActionResult NewVasPlan(string name, int amount /*, etc*/)
{
    //MVC will also automatically fill name, amount, from request POST or GET params 
    //(or cookies??)
}

希望这会有所帮助,告诉我您是否需要更多信息或者我是否误解了您的问题。