mvc 母版页、用户自定义控件
母版页(Master)
1.母版页是与Controller无关的,母版页只是一个View文件,而没有任何Controller与之相对应。
2.其实在ASP.NET MVC中View的aspx与母版页并不像WebForm中那样紧密关联。
例如我想更换一个aspx的母版页,只要在Action中return 时指定所要使用的Master即可:
![]()
如图我有2个Master文件,而/Views/Home/Index.aspx则为
![]()
这时我们如果想要使用Site2做为Master,只要在Action中return View指定masterName的参数即可:
1: public ActionResult Index() {
2: return View(null,"Site2");
3: }
自定义控件
RenderPartial
ASP.NET MVC中如果要自定义控件的话并不能像WebForm那样用<cc1:xxxx />这样来引用,而要使用Helper。
例如我们建立一个ct.ascx
![]()
其内容:
1: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
2: 我是ct.ascx
然后在Index.aspx里调用
1: <%Html.RenderPartial("ct"); %>
OK(注意这里不是用<%=%>显示而是执行语句)
最终显示结果就是:
![]()
用户自定义控件除了放在调用者同一目录下,也可以放在View/Shared中。而且这种自定义控件也是没有Controller支持的,仅是将View的部分提取为公共使用。
那么如果我们想调用的ascx有逻辑处理或调用数据库,也就是需要Controller的情况下,我们应该怎么办呢。
RenderAction
OK比如我想有一个有独立逻辑的ascx.
先要引用 Microsoft.Web.Mvc(http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471)
web.config/configuration/System.Web/pages/namespaces添加<add namespace="Microsoft.Web.Mvc"/>
那么和建立一个Action是一样的
Action:
1: public ActionResult CtAction() {
2: return PartialView();//注意这里不是View
3: }
View(CtAction.ascx)
1: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
2:
3: 显示当前Action:<%=this.ViewContext.RouteData.Values["action"]%>
1: <%
2: Html.RenderAction("ctaction","home"); %>
OK运行起来,结果为:
![]()
文件的上传
下面来说一下与本篇本无关的话题就是文件的上传,我这里也不多做解释了,代码就是最好的语言。
View:
1: <form action="<%=Url.Action("Process") %>" enctype="multipart/form-data" method="post">
2: <input name="up1" type="file" /> <input type="submit" />
3: </form>
Action(Process):
1: public ActionResult Process(HttpPostedFileBase up1)
2: {//参数名与name名一致即可
3: up1.SaveAs(Server.MapPath("~/" + up1.FileName));
4: return Content(up1.FileName);
5: }
显示:![]()
提交后:![]()
再看看文件夹,文件已经上传成功:
![]()
mvc 母版页、用户自定义控件的更多相关文章
- ASP.NET MVC学习之母版页和自定义控件的使用
一.母板页_Layout.cshtml类似于传统WebForm中的.master文件,起到页面整体框架重用的目地1.母板页代码预览 <!DOCTYPE html> <html> ...
- 七天学会ASP.NET MVC (四)——用户授权认证问题
小编应各位的要求,快马加鞭,马不停蹄的终于:七天学会 Asp.Net MVC 第四篇出炉,在第四天的学习中,我们主要了学习如何在MVC中如何实现认证授权等问题,本节主要讲了验证错误时的错误值,客户端验 ...
- MVC WebApi 用户验证 (2)
构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2) 前言: 构建ASP.NET MVC5+EF6+E ...
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)
前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并 ...
- WPF中添加Winform用户自定义控件
过程:创建WPF工程->创建Winform用户自定义控件工程->WPF中引用控件->添加到Xaml页面 1.首先在WPF工程的解决方案上右击选择添加新建项目: 选择Windows窗体 ...
- 七天学会ASP.NET MVC (四)——用户授权认证问题 【转】
http://www.cnblogs.com/powertoolsteam/p/MVC_four.html 小编应各位的要求,快马加鞭,马不停蹄的终于:七天学会 Asp.Net MVC 第四篇出炉,在 ...
- C#之用户自定义控件
一.新建用户自定义控件 如下图所示,想通过LED的点击来实现亮和灭使用去控制下位机. LED亮: LED灭: 首先新建一个用户控件类,如下图所示步骤: 在资源中,添加现有文件中加入图片 加入的图片可以 ...
- C#用户自定义控件(含源代码)-透明文本框
using System; using System.Collections; using System.ComponentModel; using System.Drawing; using Sys ...
- Winform中用户自定义控件中外部设置子控件属性的方法
假设我们新建立一个用户自定义控件,由一个lable1和pictureBox1组成 此时我们在外部调用该控件,然后想动态改变lable1的值,我们该怎么办? 假设实例化的用户控件名为UserContro ...
随机推荐
- wxWidgets显示视频
wxWidgets中似乎没有专门用于显示视频的控件(虽然有wxWidgets本身的openGL控件wxGLCANVAS,但是我没有去试--) 按照这篇文章所讲的,从wxPanel继承出一个DrawPa ...
- OpenCV程序在Debug时出现「PDB文件无法加载」的一个解决方法
这几天毕设要用到OpenCV,按照网上的教程来搭建开发环境. 用的是OpenCV 3.0 beta + Visual Studio Community 2013.我的系统64位是Win 8.1,但在加 ...
- 在Pythonanywhere上部署Django
1 在github上创建一个仓库blog 2 克隆到本地,添加Django项目,再推送到github 3 克隆到pythonanywhere,以后每次更新用git pull即可 4 在pythonan ...
- eclipse设置JSP的默认编码
有时候我们新建一个JSP页面,但是编码却不是我们想要的,我们可在eclipse里面进行如下设置: 点击eclipse上面的window-->preferences 输入查找jsp-->点击 ...
- 第16 天 JavaWEB过滤器和监听器技术
Day16 JavaWEB过滤器和监听器技术 复习: 1.大结果集分页mysql的实现,是使用那个关键字,从user表中取第一页的数据,长度为10,sql语句怎么写? 2.分页查询的起始位置(star ...
- 腾讯应用开发3006 : name lookup timed out 错误
昨天到今天发现应用访问不正常,用户发表数据很少,一查日志,QQ的 openApi 返回的结果全是 name lookup timed out,莫名其妙. 在服务器上 ping , nslookup , ...
- FZU 2195 检查站点
求出根节点到每个叶子节点的距离,找到最大的.然后总权值减去最大叶子距离就是答案. GNU C++ AC Visual C++ TLE #include<stdio.h> #include ...
- React源码解析-Virtual DOM解析
前言:最近一直在研究React,看了陈屹先生所著的深入React技术栈,以及自己使用了这么长时间.对React应该说有比较深的理解了,正好前阵子也把两本关于前端设计模式的书看完了,总感觉有一种知识错综 ...
- 4-jQuery - AJAX post()
说明 POST 一般用于向后台发送数据,但也可用于从服务器获取数据.不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据. 格式 $.post(URL,data,callback); // ...
- Leetcode 074 Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...