将int保存为对象的键

时间:2014-07-01 21:17:38

标签: c# asp.net-mvc key

基本上我有一些看起来像这样的东西:

public class Inventory
{
public int ID { get; set; }
public Trade Have1 { get; set; }
public Trade Have2 { get; set; }
public Trade Have3 { get; set; }
}

我希望能够使用Trade对象的ID创建和保存Inventory对象,而不必拉动每个对象的实际Trade对象,因为这似乎效率很低。

我希望能够做到这样的事情:

 @using (Html.BeginForm("AddToFT", "Home", FormMethod.Post, new { @id = "realsubmit", role = "form" }))
     {
            @Html.ValidationSummary(true)
            @Html.HiddenFor(model => model.Have1)
            @Html.HiddenFor(model => model.Have2)
            @Html.HiddenFor(model => model.Have3)

         <input type="submit" value="Create" />
     }

这样我就可以输入商业ID的3个整数然后将它们作为键保存这些整数,而不是必须从数据库中提取每个Trade,将它放入Inventory对象,然后保存它。像这样:

    [HttpPost]
public ActionResult Create(Inventory inventory)
{
    if (ModelState.IsValid)
    {
        db.Pokemon.Add(inventory);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(inventory);
}

也许我正在以错误的方式看待它?或者有办法做到这一点?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我和Alezis一样,不能真正理解你想要达到的目标&#39;键入&#39;并使用隐藏的字段。

如何使用: -

         <input type="text" name="haveId1" />
         <input type="text" name="haveId2" />
         <input type="text" name="haveId3" />

而不是hiddens,取回ID并将它们设置在一个新对象上进行保存?

 [HttpPost]
public ActionResult Create(int haveId1, int haveId2, int haveId2)
{
    if (ModelState.IsValid)
    {
        Inventory inventory = new Inventory()
        {
            Have1 = haveId1,
            Have2 = haveId2,
            Have3 = haveId3
        };
        db.Pokemon.Add(inventory);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View();
}