所以我决定将拍卖行Web应用程序作为我的第一个asp.net mvc项目,我无法弄清楚如何在属于不同控制器的两个视图之间传递参数。在第一个视图中,AuctionHouseController的详细信息,我有:
<a class="btn btn-default" href="@Url.Action("Create", "Auctions", new { id = Model.ItemId })">Start Auction »</a>
和一个网址:http://localhost:2142/AuctionHouse/Details/123
这是详细信息方法:
public ActionResult Details(int id)
{
var item = _auctionhDbc.Items.Find(id);
return View(item);
}
我想传递网址的ID部分 - &#34; 123&#34;到按钮所在的视图 - 创建AuctionsController,我有:
<div class="form-group">
@Html.LabelFor(model => model.Item.ItemId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Item.ItemId, new { htmlAttributes = new { @class = "form-control", @Value = " " } })
@Html.ValidationMessageFor(model => model.Item.ItemId, "", new { @class = "text-danger" })
</div>
</div>
我想放置&#34; 123&#34;作为Html编辑器字段的默认值(@Value)。我怎么能这样做?
答案 0 :(得分:1)
假设您使用的是强类型视图,Create
视图的模型在ItemID
中的值已经为123。问题是,您的模型属于Items
类型,但您尝试将EditorFor
用于model.Item.ItemID
。
因此,而不是你的行
@Html.EditorFor(model => model.Item.ItemId,
new { htmlAttributes = new { @class = "form-control", @Value = " " } })
如果您使用
@Html.EditorFor(model => model.ItemId,
new { htmlAttributes = new { @class = "form-control" } })
你已经在那里传递了价值。请确保通过以下方式使用strongly typed views:
@model YourNameSpace.Items
在视图的开头。