我正在开发一个 MVC 应用程序(剃刀语法),并且在将参数传递给我的Html.Action
调用时遇到问题。下面是我正在实施的搜索页面。请注意,模型包含要在下拉列表中使用的不同值。
从视图调用:
@using(Html.BeginForm("Search", "Home", FormMethod.Get, null)){
@Html.LabelFor(model => model.siteCode)
@Html.DropDownListFor(model => model.siteCode, new SelectList(Model.siteCode), "All")
@Html.LabelFor(model => model.group)
@Html.DropDownListFor(model => model.group, new SelectList(Model.group), "All")
}
@Html.Action("ShowOrderData", "Home", new {siteCode = Model.siteCode, group = Model.group}
控制器中的操作:
public ActionResult ShowOrderData(string siteCode = "",
string group = "",)
{
var model = _db.ToolOrders
.Where(r => r.SiteCD_LOC.Contains(siteCode))
.Where(r => r.GroupCode.Contains(group))
return PartialView("_OrderData", model);
}
注意:可能存在一些语法错误。还有大约 10 个参数被传递,我不想阻塞代码块。
因此,在使用此代码进行调试时,会将空字符串发送到我的ShowOrderData控制器。我试图在 Html.Action 调用 ( Model.siteCode.ToString()
) 中添加 .ToString,然后会显示一个 LINQ 语句。我猜这种方法是错误的,因为模型不包含来自先前请求的任何信息。
如何正确地将数据从 QueryString 发送到局部视图?我见过通过 request.querystring 直接访问 queryString 的方法,但我也听说在视图中使用它是不好的做法。
谢谢