【发布时间】:2014-02-25 08:00:16
【问题描述】:
我想获取文本框的值,我将根据该值下载一个 Excel 列表。这是我的看法:
@using (Html.BeginForm("DownloadAttendeeExcel", "Attendee", FormMethod.Post, new { id = "downloadAttendee", @class = "stdform" }))
{ <div>
@Html.TextBoxFor(x => x.EventID, new { id = "eventID" })
</div>
<div>
@Html.TextBoxFor(x => x.EventName, new { id = "eventName" })
</div>
}
这是我的操作,但我无法根据文本框值设置 model.eventID,我不明白为什么。
public ActionResult DownloadAttendeeExcel(AttendeeListItem model)
{
Reservation res = new Reservation();
res.EventID = model.EventID;
return View();
}
【问题讨论】:
-
您不能在
BeginForm上设置值,而是需要使用HiddenFor或其他输入Html 元素。这是因为只有输入元素在回发时被发回。 -
不需要隐藏,您的文本框应该可以正常工作。您的视图是否使用 Model AttendeeListItem?视图顶部应该有@model AttendeeListItem。另外:EventName 是否通过而 EventID 不是?
-
另外:您是使用普通提交按钮还是根据您的表单数据执行 ajax 调用?
-
我的视图中有模型。我使用 ajax 获得自动完成事件名称,因此事件即将到来,但我的文本框值未发布到 model.EventID
标签: asp.net-mvc asp.net-mvc-4 razor html-helper