大家好,这几天看MVC遇到了几个问题,相信这些应该是初学者都会碰到的,这里说一下问题吧。
1. 2010好像没有设计器了。
2. 发现什么Gridview什么的都用不了,也不是说完全不能用。有错误的时候在页顶加个form和runat,可以解决,但是如果有事件提交就解决不了,不知道怎么解决。
3. 然后就是始终没有解决的问题了,一直搞不懂View返回东西有什么用,而且就只能一个对象,不也不是不能返回多个,只是返回多个太复杂了,最要命的是view返回数据以后,可以用foreach显示处理,但是一个页面如果有数据显示和查询同时出现,foreach要用到view返回的数据,而查询里面要用到HTML....(m-,m.action),这里的m数据需要从module获取,这个时候冲突就来了,错误上说他需要什么,但是你给的是什么。就遇到这么几个问题,希望各位能解释一下,帮帮新手,谢谢!
1. 2010好像没有设计器了。
2. 发现什么Gridview什么的都用不了,也不是说完全不能用。有错误的时候在页顶加个form和runat,可以解决,但是如果有事件提交就解决不了,不知道怎么解决。
3. 然后就是始终没有解决的问题了,一直搞不懂View返回东西有什么用,而且就只能一个对象,不也不是不能返回多个,只是返回多个太复杂了,最要命的是view返回数据以后,可以用foreach显示处理,但是一个页面如果有数据显示和查询同时出现,foreach要用到view返回的数据,而查询里面要用到HTML....(m-,m.action),这里的m数据需要从module获取,这个时候冲突就来了,错误上说他需要什么,但是你给的是什么。就遇到这么几个问题,希望各位能解释一下,帮帮新手,谢谢!
解决方案 »
- ASP.NET新建的项目 怎么引用Session呢
- 关于dropdownlist控件问题
- 请教自定义表单(动态表单)的问题,若有源码,我可以用RMB购买
- 将Excel导入到sql数据库
- 如何获取字符串中字符(怎么拆分?????)
- vs2003 WEB中用到了TABSTRIP,在运行后却显示不出来是怎么回事?
- 统计:大家用DB(SQL)时,字段名一般用中文还是英文?
- DataList和Repeater 怎么做横竖表头?
- 原来的控件是用HTC 实现的,如何用自定义控件进行实现,也就是不要HTC 文件,如何把HTC 内容写到CS 中?
- 下午遇到Datalist的问题,希望坛友给个思路。
- 网站下载excel问题
- C# 2维字符串数组 赋值给 客户端的javascript Array list变量
2、类似于服务器控件button,gridview在mvc是没用的,只能用html控件。
3、view不是返回网页或者由网页与内容组成的HTML。
事件提交的写法就是变了、差不多、、、、
AllowPaging="True" BackColor="White" Font-Size="13px"
BorderColor="#3366CC" BorderStyle="None"
BorderWidth="1px" CellPadding="4" PageSize="5"
OnPageIndexChanging="GridView1_PageIndexChanging"
AutoGenerateColumns="False">
<asp:BoundField DataField="UserTitle" HeaderText="标题" />
<asp:HyperLinkField HeaderText="修改" Text="<img src='../images/edit.gif' border='0px' title='点击修改' />" DataNavigateUrlFields="ID" DataNavigateUrlFormatString="Edit_Info.MVC?id={0}" />--------gridview如果是自己写的,就好控制了、将ID值传入到另一个页面
</Columns>
</asp:GridView>
2.MVC和普通的WebForm是不一样的,所以不提倡使用服务器控件,但不是用不了。
3.View返回的那个对象是你需要的数据。这个对象可以是任意的类型,关键看你自己的定义。如果需要多个对象可以用一个对象封装这些对象。
2.提交form到对应的Controller就行了,接收参数,post,get方法自己定义。
3.如:View返回的可以是一个数组,List<Class>一个列表的类类型,你在Controller返回View的时候,就可以把这个类型的数据返回,这样在View就可以接收到数据,去foreach循环获取每个Item,显示列表数据。
AController.cs里面的代码
Index() {
return View(Sql查询出来的结果);
}Module里面的代码
public class ChangePasswordModel
{
[Required]
[DataType(DataType.Text)]
[DisplayName("搜索关键字")]
public string SearchBox { get; set; }
HTML里面有这么一段
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApp.Models.SearchModel>" %>
foreach (){
这里循环的是Sql查询出来的结果
}HTML.FORM
....ForText 这里的数据来自ChangePasswordModel如果这么写,会提示冲突,主要想表达这个冲突大家都是怎么解决的?
View接口公开的方法:CreateView(参数:格式化的标准数据流)
Controller接口公开的方法:CreateView(IView)
UI的内容是在运行时刻View调用IController的CreateView(IView)把自己传给Controller,
再由Controller调用IView的CreateView(CommonFormatData),
这样就完成一次标准的View和Controlller接口的通信,而传递的信号就是标准数据格式;
2、UI只是View的一部分,View自己有一个静态驱动器,可以吧Controller传来的标准数据格式换成UI元素;
3、UI看楼主使用的是什么引擎了,如果使用WebForm作为MVC的引擎(这是我们的方案),任何服务器端控件都可以使用,并且随时可以开发新的控件,
如果楼主使用的是ASP.NetMVC,那么请自己重新开发一套客户端控件,如果你还使用IDE的前端编辑器,那简直就是噩梦,数据和HTML混编在一起,View和Model都无法重用,也就是说:你编写了一个员工档案管理的页面,然后还要重新写一个极其类似的客户档案管理页面,这两个页面仅仅是字段的区别;
4、准则:
View只实例化IController,绝对不知道IModel,View调用IController的时候把自己作为Iview的引用传递给Icontroller;
Model只晓得IController,也绝对不知道IView,
Controller只实例化IModel,而操作IView是通过参数引用实现的
5、协议:
MVC3个层都遵从一个统一的数据格式化协议,Model可以把自己格式化成标准数据格式,View也可以把标准数据格式转化成UI元素
<%: Html.LabelFor(m => m.OldPassword) %>
</div>
这里面的m好像都是从Module取数据的啊。这个这么解释呢?
我曾经不止一次发表的观点:这根本就不是MVC的模式,只不过顶了个MVC的名头忽悠JAVA程序员搬家的
数据和HTML混编在一起,View和Model都无法重用,
不要说UI中出现了Model了,
UI中连<div class="editor-label">都不应该出现,
设计时刻,View怎么会知道自己要呈现什么内容呢?
请仔细研读13楼关于View和Controller通信的讲解,已经说得很细了
先不要急着去做功能,先去学习一下,再跟着做个demo。
下个mvc的开发文档看看。http://download.csdn.net/source/2710420
一种方法论跟框架没有什么关系,即便是有的工具集冠以MVC的名头,那跟MVC也没什么因果关系;
组件也好,代码也好,都是设计人员编程思想的表露,
这是能力,不经过锻炼是不可能掌握的,在面向对象理论中有个重要的组成部分,那就是"消息",消息更强调逻辑,消息要比类更难发现或者说发明,
而MVC思想恰恰更强调消息机制
asp.net下真正实现的mvc应该是怎么样的呢,能举个例子学习一下吗