【发布时间】:2015-05-04 07:47:26
【问题描述】:
我对此很陌生,所以如果我遗漏了一些明显的东西,我深表歉意。
我正在尝试使用 Html.BeginForm 将两个字符串值发送到控制器。
这是控制器代码(在“BlogsController”中):
[Route("{type}/{variable}")]
public ActionResult BlogResult(string type, string variable)
{
}
我正在尝试发送一个“隐藏”参数作为“类型”(以便我识别用户正在执行哪种查询 - 在这种情况下,字符串是“k”)和一个“文本框”字符串作为“变量”。这是 Razor 中的表单:
@using (Html.BeginForm("BlogResult", "Blogs", FormMethod.Post))
{
@Html.Hidden("type", "k")
@Html.TextBox("variable")
<input type="submit" name="Submit Keyword" />
}
但是,当提交按钮被按下时,它只是刷新当前页面,并没有调用正确的控制器。
我已经通过各种网站进行了彻底的搜索,但我找不到令人满意的解决方案。因此,任何帮助将不胜感激。
【问题讨论】:
-
您将什么模型类绑定到您的视图?
-
您使用的是模型吗?如果是这样,请使用 @Html.TextBoxFor()
-
你展示的方法是用
[HttpPost]装饰的吗? -
目前我没有在这部分中使用模型——我正在使用 LINQ 中的关键字在动作方法(未显示)中与模型进行交互。我有其他 ActionLinks 用于不同类型的搜索(即按年份或按作者),其中“类型”变量返回不同的字母。
-
已在该方法上尝试过 [HttpPost],但这似乎不起作用。如果我尝试:@using (Html.BeginForm("BlogResult", "Blogs", new { type = "y", variable = "xxxx"},FormMethod.Post)) ...它确实有效,但是当然可以,我正在发送静态数据...
标签: c# razor asp.net-mvc-5