我对 ASP.NET MVC 还很陌生,并且仍然习惯了一些概念。我知道要将视图中文本框的值传回控制器,我可以使用 Html.BeginForm 并将文本框的名称与控制器操作中的相应参数相同。
这是我的情况:我有 2 个按钮。我希望他们在控制器中调用相同的操作。我希望他们都传递文本框的值(即“searchText”)。但是,我希望其中一个按钮为参数 isQuickJump 传递“false”,而我希望另一个按钮为参数 isQuickJump 传递“true”。
这是我的观点:
@using (Html.BeginForm("SearchResults", "Search", FormMethod.Get)) {
<div id="logo" class="centered">
<a href="SearchResults">
<img alt="Search" src="../../Content/themes/base/images/Search.jpg" />
</a>
</div>
<div id="searchBox" class="centered">
@Html.TextBox("searchText", null, new { @class = "searchTextBox" })
</div>
<div id="buttons" class="centered">
<input type="submit" id="searchButton" value="Search" class="inputBtn" />
@Html.ActionLink("Quick Jump", "SearchResults", "Search", new { isQuickJump = true }, new { @class = "btn" })
</div>
}
控制器:
public ActionResult SearchResults(string searchText, int? page, int? size, bool? isQuickJump, GridSortOptions sort)
{
var items = GetSearchGrid(searchText, page, size, sort);
if (Request.IsAjaxRequest())
return PartialView("_SearchResultsGrid", items);
return View(items);
}
关于如何做到这一点的任何建议?
我感谢您的帮助!