使用查询字符串传递的值创建记录

时间:2011-10-13 14:30:27

标签: forms asp.net-mvc-3 hidden

我在一个包含foriegn键的表中创建一条记录。 foriegn密钥在查询字符串中传递,我在ViewBag中设置了值。我已将此添加到表单中但它不起作用。 以下是控制器的代码:

public ActionResult Create(int propertyId)
{
        ViewBag.storagePropertyId = propertyId;
        return View();
} 

以下是视图中的代码。

@Html.HiddenFor(model => model.propertyId, new { value =ViewBag.propertyId })

我应该这样做吗?如果是这样,该表格是否存在问题

1 个答案:

答案 0 :(得分:0)

为什么不在控制器中设置Model.PropertyID的值,或者在视图模型中更好。

<强>视图模型

public class MyViewModel()
{
   public int PropertyID { get; set; }

   public MyViewModel() { } 

   public MyViewModel(int propertyID)
   {
      this.PropertyID = propertyID;
   }
}

行动结果

public ActionResult Create(int propertyId)
{
   return View(new MyViewModel(propertyId));
}

查看

@model MyViewModel

@Html.HiddenFor(m => m.PropertyID)

然后隐藏字段的值将包含属性ID的值。