Кажется, я не могу понять, почему мое значение, отправляемое в контроллер с использованием Html.BeginForm()
, всегда равно NULL.
Это мой контроллер:
[HttpPost]
public PartialViewResult SearchTest(string searchThingy)
{
try
{
var model = new SearchTestViewModel(searchThingy);
return PartialView("_SearchTest", model);
}
catch
{
return PartialView("_Error");
}
}
Это код, который я использую для вызова контроллера в представлении:
// The component containing the value in the view:
@Html.TextBoxFor(model => model.SearchThingy, new { @class = "form-control", @id = "txtSearchTerm" })
// This Ajax.BeginForm is being called from a button
@using (Ajax.BeginForm("SearchTest", "Search", null, new AjaxOptions
{
HttpMethod = FormMethod.Post.ToString(),
OnBegin = "showGeneralLoadingIndicator",
OnComplete = "hideGeneralLoadingIndicator"
}, new { @id = "frmSearchOutstandingActions" }))
{@Html.Hidden("searchThingy", Model.SearchThingy)}
// I have also tried using query string instead:
@{var queryStringParameters = new { @searchThingy = Model.SearchThingy }; }
@using (Ajax.BeginForm("SearchTest", "Search", queryStringParameters, new AjaxOptions
{
HttpMethod = FormMethod.Post.ToString(),
OnBegin = "showGeneralLoadingIndicator",
OnComplete = "hideGeneralLoadingIndicator"
}, new { @id = "frmSearchOutstandingActions" }))
{}
Код моей модели представления, имеющий отношение к этому:
public class SearchTestViewModel
{
public string SearchThingy{ get; set; }
}
Я также попытался изменить HttpMethod
на . Не могу понять почему