加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 从MVC控制器返回不同的视图

发布时间:2020-12-16 03:41:50 所属栏目:asp.Net 来源:网络整理
导读:我有一个MVC应用程序,其SharedLayout视图(母版页)为用户提供搜索功能.他们可以通过订单号或按号码搜索他们的订单.因此共享视图和文本框有两个选项按钮.代码有点像这样 @using (Html.BeginForm("Track","Tracking",FormMethod.Post)) { div style="text-align
我有一个MVC应用程序,其SharedLayout视图(母版页)为用户提供搜索功能.他们可以通过订单号或按号码搜索他们的订单.因此共享视图和文本框有两个选项按钮.代码有点像这样

@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并返回视图.它适用于单个搜索,因为View与控制器的方法相关联.它工作正常但我怎么能有条件地返回基于单选按钮选择的其他视图.

我想出的就是这个

[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();
    }

请指导.
谢谢

解决方法

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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读