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下面
    在这个类库上面选择 复制本地 即可

posted @ 2011-03-15 13:57  郑文亮  阅读(845)  评论(0编辑  收藏  举报