[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(FormCollection fc)
{
String sc = fc["SearchString"];
return RedirectToAction("SearchFromObject", new { id = sc });
}
public ActionResult SearchFromObject(string searchString)
{
var Items = from m in db.Objects
select m;
if (!String.IsNullOrEmpty(searchString))
{
Items = Items.Where(s => s.Name.Contains(searchString));
}
return View(Items);
}
此代码为String sc返回null值。为什么??在我看来有一个文本框。我希望将该值传递给SearchFromObject方法作为参数,当单击按钮并检索与搜索关键字相关的数据时。这是我的观点
@{
ViewBag.Title = "Search";
}
<h2>Search</h2>
<p>
@using (Html.BeginForm())
{<p>
Title: @Html.TextBox("SearchString") <br />
<input type ="submit" value="Search" />
</p>
}
答案 0 :(得分:0)
指定您的发布方法,控制器名称和表单操作,如下所示:
@using (Html.BeginForm("Index", "Default1", FormMethod.Post))
{
<p>
Title: @Html.TextBox("SearchString") <br />
<input type ="submit" value="Search" />
</p>
}
答案 1 :(得分:0)
你的方法
public ActionResult SearchFromObject(string searchString)
有一个名为searchString
的参数,但在Index()
POST方法中,您尝试使用id
传递名为new { id = sc }
的参数。它不是sc
的{{1}}的值,它是null
的第二个GET方法中searchString
的值!
将POST方法签名更改为
null