8

我有一个 MVC 应用程序,其 SharedLayout 视图(母版页)为用户提供了搜索功能。他们可以通过 Order No 或 By Bill no 搜索他们的订单。因此,共享视图和文本框有两个选项按钮。代码有点像这样

   @using (Html.BeginForm("Track", "Tracking", FormMethod.Post))
        {
            <div style="text-align: center">
                <textarea cols="20" id="txtNo" name="txtOrderNo" rows="2" ></textarea>
            </div>
            <div style="text-align: center">
                <input type="radio" name="optOrderNo" checked="checked" value="tracking" />Order No                    <input type="radio" name="optRefNo" value="tracking" />Ref No
            </div>
            <div style="text-align: center">
                <input type="submit" value="Track" />
            </div>
        }

所以它会去里面的 TrackingController 和 Track Method 并返回视图。它适用于单个搜索,因为视图与控制器的方法相关联。它工作正常,但我怎么能有条件地根据单选按钮选择返回另一个视图。

我想出的是这个

 [HttpPost]
    public ActionResult Track(FormCollection form)
    {
        string refNo = null;
        if (form["optRefNo"] == null)
        {
            string OrderNo = form["txtOrderNo"];
            var manager = new TrackingManager();
            var a = manager.ConsignmentTracking(OrderNo);
            var model = new TrackingModel();
            if (OrderNo != null)
                model.SetModelForConsNo(a, consNo);
            return View(model);
        }

        refNo = form["txtConsNo"];
        return TrackByRef(refNo);
    }

    public ActionResult TrackByRef(string refNo)
    {
       //what ever i want to do with reference no
        return View();
    }

请指导。谢谢

4

1 回答 1

21

View有一个重载,其中第一个参数是一个字符串。这是您要使用的视图的名称(或路径),而不是默认名称(与操作名称匹配的视图)。

public ActionResult TrackByRef(string refNo)
{
   //what ever i want to do with reference no
    return View("Track");
   // or, if you want to supply a model to Track:
   // return View("Track", myModel);
}
于 2012-06-18T07:23:00.390 回答