我在asp.net mvc
应用程序
public ActionResult ForFahrzeug(DateTime? initDate = null, DateTime? finalDate = null, long id = 0, long days = 0, string ExpGnr = "")
{
//body
}
我在以下视图中调用上述方法
@using (Html.BeginForm("ForFahrzeug", "Messungen", FormMethod.Get))
{
<P>Fahrten von:
@Html.TextBox("initDate", "", new { style = "width:15%", @class = "datefield" }) bis:
@Html.TextBox("finalDate", "", new { style = "width:15%", @class = "datefield" })
<input type="submit" value="Filter" /> </p>
}
我想从视图中获取“ExpGnr”的值。我怎么能这样做?我尝试像下面这样做,但它不起作用。
@using (Html.BeginForm("ForFahrzeug", "Messungen", FormMethod.Get, new { ExpGnr = "Smart_ED"}))
{
Fahrten von:
@Html.TextBox("initDate", "", new { style = "width:15%", @class = "datefield" }) bis:
@Html.TextBox("finalDate", "", new { style = "width:15%", @class = "datefield" })
<input type="submit" value="Filter" /> </p>
}
答案 0 :(得分:1)
我想我理解你的问题。好像你选择了方法@ Html.BeginForm()的错误重载。 你应该写这样的东西:
@using (Html.BeginForm("ForFahrzeug", "Messungen", new { ExpGnr = "Smart_ED"},FormMethod.Get))
始终选择正确的overload of MVC extensions或使用VisualStudio帮助消息。
看,您通过GET方法提交表单的重要原因是什么?在大多数情况下,应使用POST请求提交表单。
而且,我想你需要为你使用一些ViewModel Form。基于ViewModel的解决方案对于MVC来说更加清晰,可扩展且传统。
您还可以在ViewModel中添加ExpGnr属性,并通过@Html.HiddenFor(x => x.ExpGnr)
将其传递给控制器
此外,this主题对您有用。
<强>更新强>
确定。这将有效:
@using (Html.BeginForm("ForFahrzeug", "Messungen", FormMethod.Get))
{
@Html.Hidden("ExpGnr","Smart_ED")
@Html.TextBox("initDate", "", new { style = "width:15%", @class = "datefield" })
@Html.TextBox("finalDate", "", new { style = "width:15%", @class = "datefield" })
<input type="submit" value="Filter" />
}
谢谢)
答案 1 :(得分:0)
如果我理解正确,您想要将一些数据从操作传递到视图。您应该使用ViewBag来实现此目的。