当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪MVC3 + Spring.Net + NHibernate综合应用(二)      引子书接上文,上次我说到Mvc3开发环境的搭建,及MVC3程序的运行原理,这次着重讨论一下,MVC3+Spring.net框架的整合应用,Spring.net作为一套成熟的企业级应用框架,一直很爱开发者的喜爱。Spr.........
    ▪C#字符串连接的效率问题      C#字符串连接常用的四种方式:StringBuilder、+、string.Format、List<string>。1.+的方式string sql = "update tableName set int1=" + int1.ToString() + ",int2=" + int2.ToString() + ",int3=" + int3.ToString() + " where id=" + id.ToSt.........
    ▪MVC学习第四节 向View传值       一、ViewData与TempData属性来向View页传递对象上文中已经提到,使用ViewData可以将数据由Controller传递到View 在前文中我们建立了EiceController类 在本文的示例中我们将这个Controller改一下 .........

[1]MVC3 + Spring.Net + NHibernate综合应用(二)
    来源:    发布时间: 2013-10-28

引子

书接上文,上次我说到Mvc3开发环境的搭建,及MVC3程序的运行原理,这次着重讨论一下,MVC3+Spring.net框架的整合应用,Spring.net作为一套成熟的企业级应用框架,一直很爱开发者的喜爱。Spring.net不仅可以应用于传统的WebForm程序,在MVC程序中也有着举足轻重的地位。

添加Spring引用

Common.Logging、Spring.Core、Spring.Web,Spring.Web.Mvc

修改web.config

<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc"/>
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="~/Config/Controller.xml"/>
</context>
</spring>
<system.web>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<!--很重要-->
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web" />
</httpModules>
</system.web>

用Spring配置Controller文件

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">

<object id="Home" type="SpringMvcApplication1.Controllers.HomeController, SpringMvcApplication1" singleton="false">
<property name="Content" value="Spring.NET1.3.1的ASP.NET MVC依赖注入"/>
</object>
</objects>

注册SpringControllerFactory

ControllerBuilder.Current.SetControllerFactory(typeof(SpringControllerFactory));

在Global.asax文件中重新注册Controller对象工厂,让Spring代替MVC来管理Controller对象。不要采用spring.net官方的SpringMvcApplication类,这个类中包含很多原本global.ascx.cs中的代码,如果让global.ascx.cs继承SpringMvcApplication类,那么还需要调整global.ascx.cs类中的代码,防止与父类代码重复和冲突,实际上要在Controller中使用spring进行IoC,只需要注册ControllerFactory的实现类为SpringControllerFactory就可以了。

见证奇迹的时刻

结语

教程虽然仅仅是第一篇入门文章, 但是不是觉得已经会用Spring配置管理ASP.NET MVC了?在后续文章中,我将对Spring管理MVC的各种细节,MVC异常处理过滤器的应用.希望大家喜欢本系列文章!

本文链接


    
[2]C#字符串连接的效率问题
    来源:    发布时间: 2013-10-28

C#字符串连接常用的四种方式:StringBuilder、+、string.Format、List<string>。

1.+的方式

string sql = "update tableName set int1=" + int1.ToString() + ",int2=" + int2.ToString() + ",int3=" + int3.ToString() + " where id=" + id.ToString();

编译器会优化为:

string sql = string.Concat(new string[] { "update tableName set int1=", int1.ToString(), ",int2=", int2.ToString(), ",int3=", int3.ToString(), " where id=", id.ToString() });

下面是string.Concat的实现:

public static string Concat(params string[] values)
{
    int totalLength = 0;
    if (values == null)
    {
        throw new ArgumentNullException("values");
    }
    string[] strArray = new string[values.Length];
    for (int i = 0; i < values.Length; i++)
    {
        string str = values[i];
        strArray[i] = (str == null) ? Empty : str;
        totalLength += strArray[i].Length;
        if (totalLength < 0)
        {
            throw new OutOfMemoryException();
        }
    }
    return ConcatArray(strArray, totalLength);
}
private static string ConcatArray(string[] values, int totalLength)
{
    string dest = FastAllocateString(totalLength);
    int destPos = 0;
    for (int i = 0; i < values.Length; i++)
    {
        FillStringChecked(dest, destPos, values[i]);
        destPos += values[i].Length;
    }
    return dest;
}
private static unsafe void FillStringChecked(string dest, int destPos, string src)
{
    int length = src.Length;
    if
    
[3]MVC学习第四节 向View传值
    来源:    发布时间: 2013-10-28

 

一、ViewData与TempData属性来向View页传递对象


上文中已经提到,使用ViewData可以将数据由Controller传递到View 
在前文中我们建立了EiceController类 
在本文的示例中我们将这个Controller改一下

public class EiceController : Controller
{
public ActionResult Index()
{
ViewData["ViewData"] = "在这里显示ViewData";
TempData["TempData"] = "在这里显示TempData";
return View();
}
public ActionResult Index2()
{
return View("Index");
//这里指定了规定显示的View文件即Eice目录下的Index.aspx
}
}

我们将Index的参数移除,并提供了ViewData和TempData的赋值 
在Views/Eice/Index.aspx这个View中我们写以下代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
1:<%=ViewData["ViewData"]%><br />
2:<%=TempData["TempData"]%>
</asp:Content>

 

注意上面的1.2不是行号,是我写的。

接下来我们运行工程 
访问http://localhost/Eice/Index 
可以看到运行得到以下

1.在这里显示ViewData
2.在这里显示TempData

再访问http://localhost/Eice/Index2 
显示结果为

1.
2.在这里显示TempData

这里1显示是的ViewData中的内容,2为TempData传递的内容

我们可以看到ViewData只能在当前Action中有效 
但是TempData可以类似于Session一样到其它页面仍然存在,但只限一页的访问(类似于Monorail中的Flash) 
TempData一般用于临时的缓存内容或抛出错误页面时传递错误信息。

二、通过ViewData.Model来传递对象

我们先建立一个Model:EiceIndexModel.cs。

public class EiceIndexModel
{
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 性别
/// </summary>
public bool Sex { get; set; }
}

 

之后我们建立一个新的Action:Index3

public ActionResult Index3(){
var m = new EiceIndexModel
{
Name = "邹健",
Sex = true
};
return View(m);
}

 

我们下面为Index3建立View文件,仍然是在Index3上点击右键AddView

于是自动生成了一个View文件,我们运行看结果:

 

 

如果我们想要显示其它的文件我们应该怎么办呢?

 

 

本文链接


    
最新技术文章:
▪C#通过IComparable实现ListT.sort()排序
▪C#实现对Json字符串处理实例
▪Winform实现抓取web页面内容的方法
nosql iis7站长之家
▪C#控制台程序中处理2个关闭事件的代码实例
▪WinForm实现同时让两个窗体有激活效果的特效...
▪WinForm实现拦截窗体上各个部位的点击特效实...
▪用C#的params关键字实现方法形参个数可变示例
▪C#判断某程序是否运行的方法
▪C#验证码识别基础方法实例分析
▪C#通过WIN32 API实现嵌入程序窗体
▪C#实现获取鼠标句柄的方法
▪C#事件处理和委托event delegate实例简述
▪C#获取程序文件相关信息的方法
▪C#中的除法运算符与VB.NET中的除法运算符
▪ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedLi...
▪Base64编码解码原理及C#编程实例
▪C#实现的优酷真实视频地址解析功能(2014新算...
▪C#和SQL实现的字符串相似度计算代码分享
▪C#使用Word中的内置对话框实例
▪C#反射之基础应用实例总结
▪C#生成单页静态页简单实例
▪C#实现SMTP邮件发送程序实例
▪C#实现随鼠标移动窗体实例
▪C#使用GDI+创建缩略图实例
▪C#实现通过模板自动创建Word文档的方法
▪C#中Response.Write常见问题汇总
▪C#中多态、重载、重写区别分析
▪WinFrom中label背景透明的实现方法
▪C#中out保留字用法实例分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3