小编Por*_*man的帖子

如何在ASP.NET MVC中生成完整的trace.axd?

在我的应用程序中,在ASP.NET MVC应用程序中启用ASP.NET跟踪后,时间计算统计信息被关闭了5000倍.

我有一个页面需要7到9秒才能加载.Firebug和IIS日志文件中的"time-taken"字段都证实了这一点.(这只是返回客户端的页面,而不是任何布局,DOM或脚本执行.)

但是,当我打开应用程序范围的跟踪(通过web.config)并查看跟踪输出时,从"Begin PreInit"到"End Render"的时间小于0.001秒.

我假设这是因为Trace.axd是在构建WebForms时考虑的,MVC绕过了传统的页面生命周期.

然而,即使我在OnActionExecuting/OnActionExecuted的开始和结束时添加自定义跟踪,时间仍然小于0.1秒.

有没有人知道在ASP.NET MVC中我需要挂钩才能让trace.axd输出报告准确的执行时间?

asp.net-mvc trace

9
推荐指数
1
解决办法
6089
查看次数

Visual Studio在记事本中打开.xml文件

所以我很高兴今天早上正在开发一个大量使用自定义.xml配置文件的项目.

突然之间,每当我在解决方案资源管理器中双击.xml文件时,它都会在记事本中而不是在Visual Studio中打开.

认为这是Windows文件关联,我右键单击资源管理器中的文件,选择打开方式>>选择默认值,然后选择Visual Studio 2008.

但问题仍然存在 - 现在当我从资源管理器中打开文件时,Visual Studio打开,然后打开记事本.

毋庸置疑,这是非常令人沮丧的,谷歌并没有多大帮助.有没有其他人遇到过这个问题,你做了什么呢?

笔记:

  • 这仅适用于.xml文件.其他文本文件(.config,.txt)在Visual Studio中打开就好了.
  • 这与Windows文件关联无关,因为Windows正如它应该打开VS2008.这是Visual Studio内部的一些疯狂问题.
  • 我也尝试了工具>>选项>>常规>>恢复文件关联.没运气.
  • 工具>>选项>>文本编辑器>>文件扩展名中没有任何内容
  • 这就是我的"打开方式"菜单看起来像.xml文件.如您所见,"XML Editor"设置为默认值. 替代文字http://i49.tinypic.com/28v7u4j.png

file-association visual-studio-2008

9
推荐指数
2
解决办法
9372
查看次数

解码IE9用户代理

我在Windows 7虚拟机中安装了IE9,并且很惊讶地看到这个用户代理:

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ENUSMSNIP)

特别是,BOIE9ENUSMSNIP的最后两个键看起来非常垃圾.我习惯于看到工具栏和加载项在用户代理的末尾注册自己,但这是在Windows 7的原始安装上,没有其他软件.

它们在注册表中定义:

HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\PostPlatform

该密钥的值为IEAK,显然是Internet Explorer管理员工具包,根据Microsoft发送的自定义用户代理字符串.

但为什么?

我猜这BOIE9是代表"在IE9上的Bing".这是唯一有效的附加组件:

至于ENUSMSNIP,我很茫然.我的猜测是:

  • ENUS = Locale,对我来说是EN-US("美国英语")
  • MS =微软
  • NIP = ???

我尝试将我的语言环境更改为EN-GB,但用户代理没有更新也没有注册表.所以看起来它只是在安装时才重要(如果我对ENUS的态度是对的).

有谁知道这两个用户代理密钥代表什么?

或者,小心分享您的IE9用户代理是什么,也许我们可以将它们拼凑在一起?

user-agent internet-explorer-9

9
推荐指数
1
解决办法
8806
查看次数

缓存策略,输出缓存与数据缓存还是两者兼而有之?

我正在开发一个ASP.NET MVC项目,我已经开始考虑我的缓存策略了.我试图让我的框架尽可能开放用于缓存.

根据我在Scott Hanselman播客期间听到的内容,StackOverflow.com使用页面输出缓存并将内容拉链并将其放入RAM中.这听起来像是对用户范围的缓存非常有用,但对于像个性化页面这样的东西,你必须为每个用户缓存一个版本,并且可能很快失控.

所以,对于缓存策略.哪个应该使用,输出缓存,数据缓存还是组合?我的第一个想法是两者,但就缓存依赖性而言,它听起来有点复杂.

architecture asp.net asp.net-mvc caching outputcache

8
推荐指数
2
解决办法
6724
查看次数

IE8开发人员工具无法显示

首先,我已阅读以下内容:

当我按F12或从工具菜单中选择"开发人员工具"时,没有任何反应.

问题在于窗口是打开的,而是在屏幕外(它不会显示在任务栏或alt-tab中).此外,注册表中的任何地方都没有"IEDevTools"注册表项(我进行了搜索).

这是在用于兼容性测试的新安装的Windows XP VM上.

除了窗口位置和流氓注册表设置之外,还有其他原因导致开发人员工具无法显示吗?

internet-explorer internet-explorer-8 ie-developer-tools

8
推荐指数
2
解决办法
1万
查看次数

是否有官方的ASP.NET MVC参考/示例应用程序?

我很难找到一个很好的ASP.NET MVC参考应用程序.通过"引用",我特指一个以Microsoft认可的方式弯曲所有框架功能的应用程序,例如:

  • 母版页
  • 部分观点
  • 强类型模型
  • 认证
  • 自定义路线
  • 等等...

那里的开源示例(CodeCampServer,SutekiShop)要么显着地添加到基础框架,要么不使用所有的烘焙功能.

asp.net-mvc

6
推荐指数
1
解决办法
2133
查看次数

ASPX返回图像 - 输出缓存能力?

问候!

我创建了一个APSX Web表单,它根据一些提供的参数返回一个远程图像.它可以像这样使用:

<img src="/ImageGetter.aspx?param1=abc&param2=123" />
Run Code Online (Sandbox Code Playgroud)

ImageGetter.aspx的标记和代码看起来类似于:

<%@ OutputCache Duration="100000" VaryByParam="*" Location="ServerAndClient" %>
<%@ Page Language="C#" AutoEventWireup="false" EnableSessionState="False" CodeBehind="ImageGetter.aspx.cs" Inherits="ACME.Helpers.ImageGetter" %>
Run Code Online (Sandbox Code Playgroud)

此代码在ImageGetter.aspx的Page_Load方法中调用:

byte[] data = null;
Dictionary<string, string> file_locations = GetImageLocations(param1, param2);
try
{
    data = new WebClient().DownloadData(file_locations["main"]);
}
catch (WebException wex)
{
    try
    {
        data = new WebClient().DownloadData(file_locations["backup"]);
    }
    catch (Exception e)
    {
        throw;
    }
}
Response.ContentType = "image/jpeg";
Response.OutputStream.Write(data, 0, data.Length);
Response.End();
Run Code Online (Sandbox Code Playgroud)

从我的测试来看,它似乎不是缓存.这可能与输出缓存有关,还是应该根据查询字符串参数编写自己的缓存来存储字节数组?

c# asp.net caching outputcache

6
推荐指数
1
解决办法
3213
查看次数

在ASP.NET MVC中使用HTML表单?

似乎我在这个主题上所看到的一切都要么自发布以来发生了变化,要么与彼此截然不同.

我只是想在我的视图中创建一个简单的表单.

我应该使用Html.BeginForm()/ TextBox()/ EndForm()方法还是应该使用普通的HTML表单?哪个更受欢迎?

这是我到目前为止:

<%=Html.BeginForm("Create", "Product", FormMethod.Post); %>  
    <%=Html.TextBox("productTextBox", "Enter a shoe name"); %>  
    <input type="submit" name="createButton" value="Create Me!" />    
<%=Html.EndForm(); %>  
Run Code Online (Sandbox Code Playgroud)

在ASP.NET MVC中使用按钮和文本框创建简单表单的"正确"方法是什么,并允许我将表单中的数据提交到/ Product/Create操作?

然后,我如何从该方法中访问表单数据?有些人似乎使用"FormCollection"而其他人只是使用Request.Form方法.我应该使用哪种方式?

有人可以开导我吗?

asp.net-mvc

3
推荐指数
1
解决办法
5644
查看次数

如何让AttributeExchange和/或SimpleRegistration与MVC一起使用?

我正在试图让AttributeExchangeSimpleRegistration使用3.2.0.9257版本的DotNetOpenAuth.

这就是我所做的:

  1. 从GitHub下载了3.2.0.9257标签
  2. 开设了DotNetOpenAuth视觉工作室解决方案
  3. 对OpenIdRelyingPartyMvc示例进行了更改

这些更改都在UserController的Authenticate方法中.

我换了第44行,

return openid.CreateRequest(Request.Form["openid_identifier"]).RedirectingResponse.AsActionResult();
Run Code Online (Sandbox Code Playgroud)

以下内容:

var request = openid.CreateRequest(Request.Form["openid_identifier"]);

// Add SimpleRegistration requests for Email and FullName
var sr = new ClaimsRequest();
sr.Email = DemandLevel.Request;
sr.FullName = DemandLevel.Request;
request.AddExtension(sr);

// Add AttributeExchange requests for Email and FullName
var ax = new FetchRequest();
ax.Attributes.Add(new AttributeRequest(WellKnownAttributes.Contact.Email));
ax.Attributes.Add(new AttributeRequest(WellKnownAttributes.Name.FullName));
request.AddExtension(ax);

return request.RedirectingResponse.AsActionResult();
Run Code Online (Sandbox Code Playgroud)

(我还添加了DotNetOpenAuth.OpenId.Extensions.AttributeExchange和DotNetOpenAuth.OpenId.Extensions.SimpleRegistration命名空间.)

然后,在"阶段3认证"之后的同一方法中,我尝试获得响应:

var sr = response.GetExtension<ClaimsResponse>();
var ax = response.GetExtension<FetchResponse>();
Run Code Online (Sandbox Code Playgroud)

但是,这些响应始终为空.我试过谷歌,雅虎和MyOpenID.在所有情况下,身份验证都能正常运行,但不会返回SimpleRegistration或AttributeExchange数据.

我究竟做错了什么?

openid asp.net-mvc dotnetopenauth

2
推荐指数
1
解决办法
592
查看次数

当我的网站被共享时,如何控制Facebook附加到Feed故事的图像?

可能重复:
Facebook Sharer如何选择图像?

当我在我的网站上添加一个Facebook链接时,它会从网站上随机拾取大型图片,并不完全依附于故事.如何控制Facebook拍摄的图像?

html tagging facebook interface

1
推荐指数
1
解决办法
958
查看次数