首页 > 代码库 > MVC视图的简单联动

MVC视图的简单联动

    这次做的是一个联动,根据渠道与品类得相应的MD。

function InquireMD(obj, cbtm, ml) {
            if (cbtm == ‘CooperationMode‘) {
                var varCC = obj.value;            //品类
                var varCM = $("#" + cbtm).val();  //渠道
            }
            else if (cbtm == ‘Category‘) {
                var varCM = obj.value;                 //渠道
                var varCC = $("#" + cbtm).val();       //品类
            }
            if (varCM != ‘‘ && varCC!=‘‘) {
                $.ajax({
                    type: "Post",
                    data: { CategoryCode: varCC, CooperationMode: varCM },
                    url: "/home/selectmdmanage",
                    datatype: "json",
                    success: function (result) {
                        var strArea;
                        if (result.success) {
                            for (var item in result.data) {
                                strArea += "<option value=http://www.mamicode.com/‘‘>--选择MD--";
                                strArea += "<option value=http://www.mamicode.com/‘" + result.data[item].MdCode + "‘>" + result.data[item].Name + "</option>";
                            }
                            if (strArea != null) {
                                $("#" + ml).html(strArea);
                            }
                            else {
                                strArea += "<option value=http://www.mamicode.com/‘‘>--选择MD--";
                                $("#" + ml).html(strArea);
                            }
                        }
                        else {
                        }
                    }
                });
            }
        }

        function victCM(cbtm)
        {
            var varCM = $("#" + cbtm).val();
            if (varCM == ‘‘) {
                alert("请先选择合作渠道");
            }
        }

    以上是jquery的两个方法,InquireMD是当渠道与品类发生改变时的操作,传的参数分别是本身对象、品类标签或者渠道标签的Id、MD标签的id。为什么设置第二个参数是不定的,是因为为了使得渠道与品类可以共用一个方法,当然这样做就避免不了验证,所以有了判断cbtm的值。victCM是验证当在单品类是渠道是否为空,为空不允许选择品类。具体功能就是选择渠道后选择品类则出现对应MD,或者是你已经在数据库中保存了渠道与品类,此时你在不修改品类的情况下修改了渠道还是会刷新对应的MD。

<label>
    <span>合作渠道 :</span>
    @Html.DropDownList("CooperationMode", null, "--合作意向--", new { placeholder = "合作意向", req = "true", onchange = "InquireMD(this,‘Category‘,‘MdList‘)", })
    <font style="color: Red;">*</font>
</label> <label> <span>合作品类 :</span> @Html.DropDownList("Category", null, "--合作品类--", new { placeholder = "合作品类", req = "true", onchange = "InquireMD(this,‘CooperationMode‘,‘MdList‘)", onclick = "victCM(‘CooperationMode‘)" }) <font style="color: Red;">*</font> </label> <label> <span></span><font color="red">若事先已联系MD请选择对应的MD,否则请忽略此项</font> </label> <label> <span>选择MD :</span> @Html.DropDownList("MdList", null, "--选择MD--", new { placeholder = "选择MD", req = "false" }) </label>

    控制器方法也看一下,返回json格式的数据,具体的操作就不贴了。

        //[Authorize] 身份过滤器
/// <summary> /// 根据合作品类与渠道查询对应md /// </summary> /// <param name="CategoryCode">合作品类</param> /// <param name="CooperationMode">合作渠道</param> /// <returns></returns> public ActionResult SelectMdManage(string CategoryCode,string CooperationMode) { var mdList = _mdService.GetSqlMdmanages(CategoryCode, CooperationMode); JsonTransaction<MdManage> transaction = new JsonTransaction<MdManage>(); var mdListNew = transaction.TransactionList(mdList); return Json(new { success = true, data =http://www.mamicode.com/ mdListNew }, JsonRequestBehavior.AllowGet); }

     在这里接触到了过滤器,一个是url的一个过滤,一个是身份过滤。当我在视图中写ajax时,如何都不能够访问到控制器中的SelectMdManage方法,原来是设置了url的过滤,过滤以后有机会再交流。

MVC视图的简单联动