这段时间非常忙,所以上一篇没有及时回复留言,请大家谅解。
      由于时间比较长了,先简单回顾一下集锦(2) 中的内容。其中主要讨论了3个问题:view与Mvc view user control中使用强类型,UpdateModel与TryUpdateModel的使用方法及排错处理,还有就是在Action中使用FormCollection来访问请求页面标签元素的值。
      view与Mvc view user control使用强类型不仅会使页面看起来很舒服而且更具有可读性。下面的例子供大家比较一下
      使用了强类型不需要在页面中进行转换,Model就是一个Account对象

System.Web.Mvc.ViewPage<Account>
<% if (Model != null) { %>
      <div><%= Model.Name %></div>
      <div><%= Model.Age %></div>
<% } %

      没有使用强类型,这里使用了ViewData存储对象account

System.Web.Mvc.ViewPage
<% if (ViewData["account"]) != null { %>
      <% var account = ViewData["account"] as Account ;%>
      <div><%= account.Name %></div>
      <div><%= account.Age %></div>
<%}%>

      UpdateModel与TryUpdateModel有一些重载方法可以帮助我们准确的将数据装入对象,其他的就没什么了。
      下面就把今天的几个实用技巧介绍给大家,按照上一篇的顺序往下进行
8. 使用SelectList填充DropDownList
    view:
<%= Html.DropDownList("AccountType") %>
   
    controller:
List<AccountType> accountType = GetAll();
ViewData["AccountType"] = new SelectList(accountType, "ID", "Name");

    可以再后面加上默认选中的参数:
ViewData["AccountType"] = new SelectList(accountType, "ID", "Name",selectedValue);

9. 使用Html.RenderPartial调用mvc usercontrol
<% Html.RenderPartial(ViewData["PartialViewName"] as string, Model); %>
在开发中将页面分成几个usercontrol,不仅使页面逻辑更加清晰而且被定义的usercontrol可以被重用。

10. ajax请求controller返回集合
集锦1介绍了一个ajax请求controller删除记录并返回成功与否信息的实例,而这次需要返回一个数据的集合,由于asp.net mvc集成了jquery框架,所以使用getJson方法实现
    controller:
public ActionResult GetAllAccount()
{
    List<Account> list = this.GetAllAccount();
    return Json(list);
}

    view:
$.getJSON('<%= Url.Action("GetAllAccount", "Account") %>',
          function(json) {
              var $container = $("#container");
              $.each(json, function() {
              $container.append('<div><a href='detail?id=' + this.Id>this.Name</a></div>');
          });
 });

controller中的代码行 return Json(list) 将所有的信息传输到客户端,最好不要这样做,创建一个 JsonAccount 类型,其中有两个属性分别是ID,Name,只将这两个信息返回到客户端即可,当然也可以使用 KeyValuePair,这样就不用额外的定义JsonAccount 类型,使用起来更方便!

return Json(list.ConvertAll(a => new KeyValuePair<Guid, string>(a.ID, a.UserName)));

在客户端脚本也要相应的变化
$container.append('<div><a href='detail?id=' + this.Key>this.Value</a></div>');

mvc实用集锦就写到这了,希望对大家开发asp.net mvc程序能够有所帮助。谢谢大家的支持!!!!!
posted on 2009-09-13 02:10  Coolin  阅读(2070)  评论(2编辑  收藏  举报