使用html.action将参数传递到部分视图



我正在开发一个MVC应用程序(Razor语法),并且我在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 Call(Model.siteCode.ToString())中添加.tostring,而Linq语句则将显示。我猜该方法是错误的,因为该模型不包含上一个请求中的任何信息。

如何将数据从查询串起来正确发送到部分视图?我已经看到了通过request.querystring直接访问Querystring的方法,但是我也听说在视图中使用它是不好的。

谢谢

使用:

  @Html.RouteLink()

而不是动作

最新更新