可能重复:
ASP.NET MVC性能
我知道有一个学习曲线,但性能呢?在我看来,Web表单的性能会降低,但我还没有尝试过MVC.其他人经历的是什么?
我是Ruby on Rails/PHP的人,我的公司让我使用ASP.NET.这并不算太糟糕,我很高兴学习一门新语言,但自从我开始使用这项技术以来,每个人都在困扰着中继器.
问题是我完全没有看到重点:使用转发器比仅仅在循环中显示内容更好吗?我是为了这个而去找程序员的地狱吗?
在轨道我会做...
调节器
@types= Type.find(:all)
Run Code Online (Sandbox Code Playgroud)
视图
<%@types.each do |t| %>
<%= t.name %> <%= link_to "view", t%>
<%end%>
Run Code Online (Sandbox Code Playgroud)
在ASP.NET中我会这样做:
控制器类属性
protected List<Type> _types = null;
Run Code Online (Sandbox Code Playgroud)
控制器类PageLoad
_types = MethodThatGetTypeFromDB();
Run Code Online (Sandbox Code Playgroud)
视图
<% foreach (var tin _types){%>
<%= t.name %>
<%}%>
Run Code Online (Sandbox Code Playgroud)
没有中继器,但代码是干净的,DRY并且尊重MVC AP.我不会在ItemDataBound任何地方创建方法来处理或等等.那么这里的想法是什么?我是唯一一个发现中继器设置起来很痛苦并且与它们带来的优势相比不值得的人吗?
我想我不是在这里得到这个想法.
我并不是想开始与世界战斗,只是这就是我所知道的最好的,所以这就是我在开发时想要找到的范例.我认为它更方便,我已经习惯了,但是如果有人说"中继器很好,因为A,B和C,做你正在做的事情很糟糕,因为D,E和F",那我就承认了并改变我的方法.
有没有办法让一个UpdateProgress控件与多个UpdatePanel控件相关联?这样的事情:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
.....
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
.....
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress3" runat="server" AssociatedUpdatePanelID="UpdatePanel1, UpdatePanel2">.....
Run Code Online (Sandbox Code Playgroud) 我见过这个建议......
理想情况下,Web应遵循REST原则并完全无状态.因此,单个URL应标识单个资源,而不必保留每个用户的导航历史记录.
...我读了维基百科页面http://en.wikipedia.org/wiki/REST,这听起来不错,但我不知道如何实际实现它.我在ASP .NET Webforms NOT MVC工作.
例如,在我即将构建的应用程序中 - 我需要我的用户登录才允许他们做任何事情.在他们被允许做很多有用之前,他们必须跳过几个箍 - 比如接受T和C并确认他们的基本细节不变.最后他们被允许做他们真正想要的东西,比如BuyAProduct!
在我看来(我来自Rich客户端的HEAVILY有状态世界),我需要状态来记录他们所做的事情并从中推断他们可以做什么.我不知道如何支持他们(比如)为BuyAProduct URI添加书签.当他们到达书签时,我如何知道他们是否已登录,以及他们是否同意T和C以及他们是否尽职尽责地检查了他们的基本细节?
我喜欢应用程序无状态的想法,部分原因是它似乎完全解决了"当用户点击后退和前进按钮时,我该怎么办?" 我看不出我怎么能让它正常工作.我觉得我错过了一些非常基本的东西.
我正在使用Flask微框架0.6和Python 2.6
我需要从上传的文件中获取mimetype,以便我可以存储它.
这是相关的Python/Flask代码:
@app.route('/upload_file', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
mimetype = #FIXME
if file:
file.save(os.path.join(UPLOAD_FOLDER, 'File-Name')
return redirect(url_for('uploaded_file'))
else:
return redirect(url_for('upload'))
Run Code Online (Sandbox Code Playgroud)
这是网页的代码:
<form action="upload_file" method=post enctype=multipart/form-data>
Select file to upload: <input type=file name=file>
<input type=submit value=Upload>
</form>
Run Code Online (Sandbox Code Playgroud)
代码有效,但我需要能够在上传时获取mimetype.我在这里看过Flask文档:http ://flask.pocoo.org/docs/api/#incoming-request-data
所以我知道它确实得到了mimetype,但我无法弄清楚如何检索它 - 作为文本字符串,例如'txt/plain'.
有任何想法吗?
谢谢.
在Visual Studio中的Web项目中创建现有ASPX页面副本的最佳方法是什么?
如果我右键单击解决方案资源管理器中的ASPX文件并选择复制,然后粘贴,它看起来就像我期待的那样.我得到了ASPX文件的新副本和文件背后的代码.然后,我可以重命名ASPX文件,并重命名文件后面的代码.
看起来不错,直到我打开ASPX文件.然后我看到它与原始文件具有相同的"Inherits"标记,并且它指向原始类名.
有什么东西我错过了吗?我意识到我可以手动编辑这个,以及文件背后的代码(因为它们声明了相同的类名,这会导致构建错误).有没有更好的方法来做到这一点,或者我应该只是起来并开始做一些手工工作?:-)
为什么scriptPath变量超出了代码底部的范围?
它不应该在整个页面的范围内吗?在MVC中,如果我在页面顶部标记为
@{
string scriptPath = "assets/scripts/",
gkoConfig = "GkoConfig.js";
}
Run Code Online (Sandbox Code Playgroud)
它在整个当前视图中可用.我现在回到WebForms已经有一段时间了,我错过了什么?

如果我改变了代码位置,它会变<head>得更奇怪,因为我内部不再能够访问teh变量,但我确实拥有,在<body>现在......: - /

我在用
TextBox.ReadOnly = false;
Run Code Online (Sandbox Code Playgroud)
只读.
我怎样才能在DropDownList上修复它?
我使用Enabled = false属性,如...
TextBox.Enabled = false;
DropDownList.Enabled = false;
Run Code Online (Sandbox Code Playgroud)
但是,在那之后css类没有在运行时调用这两个控件.
请给我任何属性,如"ReadOnly".
我正在尝试对一些.css和.js文件使用bundle minification.我的bundle配置如下:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/Modernizr").Include(
"~/Scripts/modernizr.js"
));
bundles.Add(new StyleBundle("~/TemplateContent").Include(
"~/Content/bootstrap.css",
"~/Content/bootstrap-responsive.css",
"~/Content/prettyPhoto.css",
"~/Content/prettify.css",
"~/Content/flexslider.css",
"~/Content/iview.css",
"~/Content/style.css",
"~/Content/default.css"
));
bundles.Add(new StyleBundle("~/AppContent").Include(
"~/Content/bootstrap-tablesorter.css",
"~/Content/animate.css",
"~/Content/font-awesome.css",
"~/Content/jcarousel.css",
"~/Conten/overwrite.css",
"~/Content/sequence.css",
"~/Content/sequence.ie.css",
//more styles
));
bundles.Add(new ScriptBundle("~/TemplateScripts").Include(
"~/Scripts/modernizr-*",
"~/Scripts/jquery.js",
"~/Scripts/raphael.js",
"~/Scripts/jquery.easing.1.3.js",
"~/Scripts/bootstrap.js",
"~/Scripts/google-code-prettify/prettify.js",
"~/Scripts/jquery.elastislide.js",
"~/Scripts/jquery.tweet.js",
"~/Scripts/jquery.prettyPhoto.js",
"~/Scripts/jquery.flexslider.js",
"~/Scripts/iview.js",
"~/Scripts/jquery-hover-effect.js",
"~/Scripts/animate.js",
"~/Scripts/custom.js"
));
bundles.Add(new ScriptBundle("~/AppScripts").Include(
"~/Scripts/jquery.ticker.js",
"~/Scripts/jquery.contenthover.js",
"~/Scripts/jquery-ui-1.10.3.js",
"~/Scripts/datetimepicker.js",
"~/Scripts/jquery.metadata.js",
//more scripts
));
BundleTable.EnableOptimizations = true;
}
Run Code Online (Sandbox Code Playgroud)
当我将应用程序发布到服务器(godaddy共享虚拟主机)时,问题就出现了,我确实得到了一个缩小的输出,但是我在这些输出上得到403错误.
如果我订
BundleTable.EnableOptimizations = false;
Run Code Online (Sandbox Code Playgroud)
文件不会缩小,但页面具有正确的行为.
我正在尝试将一些带[WebMethod]注释的端点函数添加到Webforms样式的Web应用程序(.aspx和.asmx).
我想用这些端点注释[EnableCors],从而获得所有良好的ajax-preflight功能.
VS2013接受注释,但端点仍然不适合CORS.(当使用同源而非交叉原点时,它们工作正常).
我甚至不能让它们与下行和脏的交叉起源
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");
Run Code Online (Sandbox Code Playgroud)
方法 - 我的浏览器拒绝响应,并且不显示跨源响应标头.
如何在这些[WebMethod]端点中获取CORS功能?
webforms ×10
c# ×5
asp.net ×4
.net ×2
asp.net-ajax ×1
asp.net-mvc ×1
cors ×1
flask ×1
performance ×1
python ×1
repeater ×1
rest ×1
scope ×1
stateless ×1