相关文章:Populating a select box in a form using related ID in MVC3
我有一个使用MVC3和ADO.NET Linq-to-Entities生成的Listview。
我已经能够创建一个简单的列表视图,其中包含“创建”和“创建”。 “编辑”动作链接命令用于创建“相关对象”。
@Html.ActionLink("Create Shipping Profile", "../PrintProfile/Create", new { id = item.ProductId }) |
@Html.ActionLink("Edit Shipping Profile", "../PrintProfile/Edit", new { id = item.ProductId })
当我创建'PrintProfile'时,我希望“创建”视图与“ProductId”(这是数据库表关系)'预先填充',以便我可以创建配置文件,并编辑列表中每个项目的关联配置文件。
以下是PrintProfile的创建控制器:
public ActionResult Create(int ProductId)
{
var entities = new CS_ShippingProfiles();
entities.ProductId = ProductId; // Assign the ProductId I want to 'create'
return View(entities);
}
[HttpPost]
public ActionResult Create(CS_ShippingProfiles Profile)
{
if (ModelState.IsValid)
{
var entities = new LabelServiceEntities();
entities.AddToCS_ShippingProfiles(Profile);
entities.SaveChanges();
return Redirect("/Products");
}
return View(Profile);
}
但是当我按照链接时,我得到一个'Null'参数异常!我做错了什么?!
答案 0 :(得分:1)
Create
操作上的操作参数名为ProductId
,因此请确保生成正确的链接:
@Html.ActionLink(
"Create Shipping Profile",
"Create",
"PrintProfile",
new { ProductId = item.ProductId },
null
)
|
@Html.ActionLink(
"Edit Shipping Profile",
"Edit",
"PrintProfile",
new { ProductId = item.ProductId },
null
)
还要注意如何指定控制器和操作,而不是像你那样使用某些相对URL(../PrintProfile/Create
)。