我有一种情况,我想'添加'视图从控制器接受一个int,但返回一个不同的类型到HttpPost控制器方法。令人困惑,我知道。 'Add'视图用于创建一个类型为Widget的对象,但我需要传入WidgetCategory的ID。所以在我的WidgetController,我想有一个方法是这样的:MVC3 ::创建一个视图来处理多种类型
public ActionResult Add(int id) // 'id' is the WidgetCategoryID
{
return View(id);
}
然而,在视图中,因为它打算返回要添加的窗口小部件应该像这样开头:
@using MyProject.Models
@model Widget
@{
ViewBag.Title = "My Title";
Layout = "~/Views/Shared/_MyLayout.cshtml";
}
@using (Html.BeginForm())
{
// Insert markup here ...
}
我问题是,如果输入WidgetCategoryID以返回Widget,如何将WidgetCategoryID传递给控制器?我希望将它作为隐藏字段添加到表单中,如下所示:
@Html.Hidden(id)
任何想法都将不胜感激。
谢谢!
我建议将参数名称从'id'更改为'widgetCategoryId'。如果你需要一个评论来告诉我这个变量代表了什么,你没有把它命名得很好。 –
事实上,大部分答案假设你在'Add(int id)'上的'id'参数是用于'Widget.Id'而不是'Widget.WidgetCategoryId',这证明了我之前的观点,你需要重新命名它,而不是依赖在评论。 –