• jquery+mvc项目问题小结


    引言:前几天 我写了一个小应用(学习jquery+asp.net mvc)
         同时 也给公司解决一些远程登记工作日志的问题
         (原来远程也可以登记 但是速度慢  是winform客户端通过webservices连接)

    由于是第一次使用这2个知识点 遇到了一些问题 怕以后忘记了 记录在这里 也给同学一些帮助

    1. Model 层   一般是一个类 在这个类里面包括了呈现在页面上的所有的内容 可以是实体对象 也可以是DataSet
                 如果是单个值 可以不放在Model中 (放在ViewData["您的变量"])

       View和Model关系的建立 可以在创建View的时候 选择 也可以创建好视图以后 修改Model

    2. View 的一般用法

         <input id="Project" readonly="readonly" onclick="popupDiv('pop-div','Project');"
                    type="text" value="<%=ViewData["Project"] %>" />

    3. 地址的写法: 用到了mvc提供的url的help

        <script src='<%= Url.Content("~/Scripts/jquery-1.4.1.min.js")%>' type="text/javascript"></script>
      在js文件里面地址:
      首先在页面上增加一个隐藏域:
      <input id="main" value='<%= Url.Content("~/main")%>' type="hidden" />  
      js文件里面        
       window.location.href = $("#main").val(); //"main";

    4. ajax调用:
      
         var symbol = "&";
                var myPostData = "UserName=" + $("#UserName").val() + symbol;
                myPostData += "PassWord=" + $("#PassWord").val();
                //            alert(myPostData);
                $.ajax({
                    type: "POST",

                    url: $("#Authentication").val(), //"login/Authentication",
                    data: myPostData,
                    dataType: "json",
                    success: function (data) {
                      
                        if (data.IsSuccess == false) {
                            alert(data.ErrorReason);
                        }
                        else {
                           
                            window.location.href = $("#main").val(); //"main";
                        }

                        //                    $("#PassWordCheck").append("<b>请求返回的数据为:</b> " + data.ID + "<br/>");

                    }
                });

    5. Linq

         var tempQuery = from myDetail in myWorkLogDetailList
                                        where myDetail.sGuid == sGuidDetail
                                        select myDetail;
                        List<CtWorkLogDetail> oneCtWorkLogDetail = (List<CtWorkLogDetail>)tempQuery.ToList();

       最后一定要加.ToList()

    6. 返回值类的定义

       using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace xmgl
    {
        public class ReturnMultiResult<T> where T : class
        {
            private Boolean isSuccess = false;
            /// <summary>
            /// 是否成功
            /// </summary>
            public Boolean IsSuccess
            {
                get { return isSuccess; }
                set { isSuccess = value; }
            }
            private string errorReason = string.Empty;
            /// <summary>
            /// 出错原因
            /// </summary>
            public string ErrorReason
            {
                get { return errorReason; }
                set { errorReason = value; }
            }
            private string data = string.Empty;
            /// <summary>
            /// 数据
            /// </summary>
            public string Data
            {
                get { return data; }
                set { data = value; }
            }
            private List<T> result = new List<T>();
            /// <summary>
            /// 返回的集合数据
            /// </summary>
            public List<T> Result
            {
                get { return result; }
                set { result = value; }
            }
        }
         }

    7. 表格的展现:
       2种方式: 数据量少的话 使用ascx控件 比较简单
                 数据量多的话 使用返回的Json字符串 一个循环自己形成表格

          <div id="div_detailTable">
            <% Html.RenderPartial("index_Detail", Model); %>
          </div>

       其中ascx控件的Model 和 View 的 Model  是一致的

    8. jquery选择器

         //如何获取Checkbox是否选中 返回值是true或者false
         $("#Overtime").attr("checked")
         //选择一个表格所有的行
          $("#detailTable tr ")
         //选择一个大对象再筛选
         $("#detailTable tr ").find(" .class ")

    9. 对象作为一个层 移动位置

       <1> .pop-box
            {
     z-index: 9999; /*这个数值要足够大,才能够显示在最上层*/
     margin-bottom: 3px;
     display: none;
     position: absolute;  //这句话至关重要
     background: #FFF;
     border: solid 1px #6e8bde;
     /*#FFF*/
             }


        var div_obj = $("#" + div_pop);
        var windowWidth = document.body.clientWidth;
        var windowHeight = document.body.clientHeight;
        var popupHeight = div_obj.height();
        var popupWidth = div_obj.width();


        div_obj.css({ "position": "absolute" }).css("left", $("#" + triggerButton).offset().left).
                           css('top', $("#" + triggerButton).offset().top + 30).css('opacity', 'show');
        div_obj.show();

    10. View返回错误
        1. 返回json格式的错误信息
        2. 作为view返回  return Content(ee.Message);
        3. 返回公共的出错页面


    11. 部署的时候 一定要将mvc.dll 复制到bin下面
        在这个类库上面选择 复制本地 即可

  • 相关阅读:
    恐怖的Hibernate和JavaFX Table CallBack!
    Java 设计模式 – Observer 观察者模式
    Jenkins 配置 SpringBoot 自动构建部署
    Android 虹软人脸识别SDK-人脸对比
    Okhttp3 网络请求框架与 Gson
    商贸型企业 Java 收货 + 入库 + 生成付款单
    webupload项目中使用
    JavaFX程序初次运行创建数据库并执行建表SQL
    Java实现ArrayList
    Factory Method模式
  • 原文地址:https://www.cnblogs.com/zhwl/p/1984823.html
Copyright © 2020-2023  润新知