我有一个包含四个文本框(ID,batchID,EmployeeNumber,RefNumber)的搜索页面都是数字。我不想使用查询字符串将任何这些值发送到控制器。所以我使用的Form.Post方法如下:
@using(Html.BeginForm(" Details"," Search",FormMethod.Post,new {@id = Model.id}))
但是我希望将其设置为全局,以便根据用户使用哪个文本框进行搜索,该值应该发送给控制器,如果可能的话也会输入(就像他们输入ID或batchID或。 ...)这样我就可以相应地搜索数据库。请有人帮忙。
仅供参考:我的路线在global.asax
中看起来像这样routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我实际上是想从javascript方法发送值,我会在所有条件下进行检查。
答案 0 :(得分:0)
您可以定义视图模型:
public class SearchViewModel
{
public int? Id { get; set; }
public int? BatchID { get; set; }
public int? EmployeeNumber { get; set; }
public int? RefNumber { get; set; }
}
然后让您发布的控制器操作将此视图模型作为参数,您将能够检索用户在文本框中输入的值:
[HttpPost]
public ActionResult Details(SearchViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
if (model.Id != null)
{
// the user entered something into the textbox containing the id
}
if (model.BatchId != null)
{
// the user entered something into the textbox containing the batch id
}
...
}