小编Sim*_*ver的帖子

如何在默认情况下创建RC1中的ASP.NET-MVC视图的"codebehind"文件

在RC1中,用于创建视图的模板的行为已更改.

正如Scott Gu关于候选版本的帖子所解释的那样,新创建的aspx视图不再具有默认的代码隐藏文件.

根据反馈,我们已将视图模板更改为默认情况下没有代码隐藏文件.此更改有助于强化MVC应用程序中的视图的目的(这些应用程序纯粹是关于呈现并且不包含任何非呈现相关代码),并且对于大多数人来说,消除了项目中未使用的文件.

RC构建现在添加了C#和VB语法支持,用于从使用泛型的基类继承视图模板.例如,下面我们使用Edit.aspx视图模板 - 其"inherits"属性派生自ViewPage类型:

我真的希望能够在代码隐藏中编写特定于视图的代码来输出视图 - 特别是如果我在页面的几个部分重复了逻辑,我无法证明创建局部视图.

我的实际问题:斯科特默认说- 这意味着我可以改变这种行为,但我似乎无法看到哪里.可能吗?手动创建代码隐藏文件并改变现状是一件痛苦的事.

这也会导致另外一个问题:

  • 如果我重构模型的名称,那么View中的指令不会更新.这不是世界末日,而是完全强烈打字的一个明显优势.

附录:对于那些想知道为什么我想要代码隐藏的人来说,这是一些可能的原因.这是我所想到的几乎所有内容的累积列表.不言而喻(除此之外)您不得访问除模型中已有数据之外的任何数据.LINQ可以很好地处理模型数据,但LINQ to SQL不会!MVC适合那些应该已经知道这一点的人 - 这就是我喜欢它的原因 - 聪明人为智能人士制作.

  • 数据绑定旧版ASP.NET控件 - 如果替代方案不可用或者需要临时解决方案.
  • 查看需要递归以创建某种嵌套或分层HTML的逻辑.
  • 查看使用临时变量的逻辑.我拒绝在我的标签汤中定义局部变量!我希望它们至少在视图类上作为属性.
  • 仅针对一个视图或模型且不属于HtmlHelper的逻辑.作为旁注,我不认为HtmlHelper应该知道任何"模型"类.如果它知道模型中定义的类(例如IEnumerable<Product>,但我不认为你应该有一个HtmlHelper需要一个ProductModel.
  • 当你输入时,HtmlHelper方法最终会从你的所有视图中看到Html+dot,我真的想尽可能地减少这个列表.
  • 如果我想编写使用HtmlGenericControl该命名空间中的其他类的代码以面向对象的方式生成我的HTML(或者我有现有的代码来执行我想要移植的代码),该怎么办?
  • 如果我计划将来使用不同的视图引擎怎么办?我可能希望将一些逻辑与标签汤放在一起,以便以后更容易重用.
  • 如果我希望能够重命名我的Model类并让它自动重构我的视图而不必转到view.aspx并更改类名,该怎么办?
  • 如果我正在与一个我不信任的HTML设计师进行协调,以免弄乱"标签汤",并希望在.aspx.cs文件中编写非常基本的循环,那该怎么办?

我认为人们对"代码隐藏"有偏见,因为它传统上被解释为"事件处理代码"而不是"视图的另一半部分类",这就是它的本质.

视图的代码隐藏就好了.

我并不反对它使文件夹结构稍微混乱,但这就是+图标的用途.我只是希望能够使用"添加视图"创建具有代码隐藏的视图.

.net asp.net-mvc code-behind

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

更新通过JungleDisk上载的Amazon S3文件的权限

我开始使用Jungle Disk将文件上传到与Cloudfront发行版对应的Amazon S3存储桶.即我可以通过http:// URL访问它,我使用亚马逊作为CDN.

我面临的问题是Jungle Disk没有为文件设置"读取"权限,因此当我在浏览器中转到相应的URL时,我收到了Amazon 'AccessDenied'错误.如果我使用像BucketExplorer这样的工具来设置ACL,那么该URL现在返回200.

我真的很喜欢将文件拖到网络驱动器的简单性.JungleDisk是我发现的最好的程序,可以可靠地执行此操作而不会绊倒自己并使其感到困惑.但是它似乎没有选项使文件可读.

我真的不想去一个不同的工具(特别是如果我必须购买它)来改变权限 - 这似乎真的很慢,因为它们通常似乎遍历整个目录结构.

JungleDisk提供某种"网络访问" - 但这是一个付费功能,我不确定它是否会起作用.

S3似乎没有传播权限,这是一个真正的痛苦.

我正在考虑编写一个手动工具来遍历我的树并将所有内容设置为"读取"但如果这是其他人已经解决的问题,我宁愿不这样做.

permissions amazon-s3 jungledisk

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

IIS6中的ASP.NET MVC压缩选项

现在我已经坚持使用IIS6 for ASP.NET-MVC(因为我无法升级到Server 2008).它似乎不知道我的RESTful URL是动态文件,并没有压缩它们.

我所有旧的.aspx文件都是压缩的(如Fiddler所示),但不是'/products/1001'URLS 的类型.

有没有办法让IIS6在IIS6中压缩我的ActionResults而不使用像ActionFilter这样的压缩.

我假设IIS7足够聪明,知道它们是动态的.

如果你能告诉我IIS6如何知道哪些文件是动态的,那么奖励积分!

compression asp.net-mvc iis-6

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

我如何在ASP.NET MVC中"缓存"以获取更多信息

我见过的甜甜圈缓存的所有例子都是这样的:

 <%= Html.Substitute( c => DateTime.Now.ToString() )%>
Run Code Online (Sandbox Code Playgroud)

如果我只想要约会,那很好,但还有其他选择吗?

我知道有一个委托'MvcSubstitutionCallback',它有以下签名:

 public delegate string MvcSubstitutionCallback(HttpContextBase httpContext); 
Run Code Online (Sandbox Code Playgroud)

RenderActionRenderPartial返回void,所以我不能只是从委托方式回报他们.如何在更复杂的情况下有效地使用此回调.

我在这里这里都看过Phil Haacked的文章,但似乎都没有完全符合我的要求.

asp.net-mvc donut-caching

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

将JSON传递给Flash电影

将JSON传递给Flash电影和从Flash电影传递JSON的最佳方法是什么?

目前在javascript和Flash之间进行通信:

  • 我正在使用'flashvars'在最初加载时将数据传递给flash影片
  • 我在运行时使用'ExternalInterface'来传输单个值,例如运行时的布尔值

我想进入下一个级别并立即使用JSON执行此操作.

最初我只想在实例化时将JSON发送到flash电影,但后来我需要来回发送数据.

我只是想在第一时间做到这一点,并避免任何兼容性或"陷阱"问题,如果有的话.我甚至不知道我是否可以将整个对象传递给Flash,或者我是否需要将其序列化为原始JSON字符串

flash json actionscript

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

从已经分组的数据结构创建 IGrouping

我有一个 LINQ 问题,这让我有点困惑。我可以看到很多替代方法来找到解决方案,但我想尝试解决问题,因为它困扰着我!

public enum AnimalType {
    Cat,
    Dog,
    Rodent
}

var orderedAnimalTypes = new [] { AnimalType.Rodent, AnimalType.Cat };
Run Code Online (Sandbox Code Playgroud)

我有一个函数GetAnimals(AnimalType type)可以返回给定类型的所有动物。我想获取orderedAnimalTypes并查找该类型的所有动物以创建一个有序的组列表。

我想最终得到一个类型为 的对象IEnumerable<IGrouping<AnimalType, Animal>>。这是一个分组列表,其中Keyis 类型AnimalType和分组的枚举类型为 Animal。

所以我想做的是这个(在将orderedAnimalTypes列表投影到一IEnumerable组之后。

foreach (var group in groups) {
    AnimalType animalType = group.Key;
    IEnumerable<Animal> animals = group.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法使用任何 LINQ 构造来做到这一点。我想我可能需要自己实现 IGrouping 才能做到这一点,但我不确定。

备择方案

  • 我可以很容易地用字典做我想做的事,但它不会被订购。这就是为什么我试图获得一个IEnumerable分组。
  • 我也可以使用匿名类型,但我想将结果分配给 MVC 模型,并且需要强类型。我想要的类型是,IEnumerable<IGrouping<AnimalType, Animal>>但我看不到如何获得该类型。

linq igrouping

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

在ASP.NET MVC中以相同的ActionResult返回JSON *和HTML的最佳方法是什么

我正在使用ASP.NET-MVC,并从我的MVC操作返回JSON或HTML。

我遇到过一些情况,我需要同时返回JSON和HTML。例如,我可能更新了购物车,并且需要返回HTML表示形式以及更新的JS对象模型。

我在SO上发现了很多有关何时返回哪种类型的响应的问题,但是没有人讨论如何同时返回两种响应。

有可靠的方法吗?必须在所有浏览器上都能正常工作。

  • 多部分响应?
  • 在JSON结果中编码的HTML?
  • 嵌入在包含JSON的HTML中的某种脚本标签,该脚本标签将运行用于更新对象模型的函数。我倾向于这种方法,但是担心当使用html(“ ...”)将脚本添加到DOM时,脚本可能无法可靠地运行
  • 其他方式?

如果没有一个好的方法,我只需要发出2个请求来获取HTML,然后获取JSON。

asp.net-mvc json

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

适用于MVC 2 beta 2的MicrosoftMvcJQueryValidation.js版本在哪里?

MicrosoftMvcJQueryValidation.js ASP.NET MVC 2用于客户端验证.

有这个文件的问题只是没有正常工作,并想知道我是否有错误的版本.

我使用的版本来自期货来源.

 MicrosoftMvcJQueryValidation.js
 5,626 bytes
 11/17/09 10:43:12am
Run Code Online (Sandbox Code Playgroud)

我认为我的版本错误有两个原因:

1)我实际上必须调用此代码才能使验证例程正常工作.这是因为现在嵌入的默认客户端验证功能FormContext.csSys.Mvc.FormValidation.enableClientValidation.

 ViewContext.FormContext.ClientValidationFunction = "EnableClientValidation";
Run Code Online (Sandbox Code Playgroud)

2)jquery.validate.js中有一些代码可以执行以下操作:

  this.settings.errorPlacement
    ? this.settings.errorPlacement(label, $(element) )
    : label.insertAfter(element);
Run Code Online (Sandbox Code Playgroud)

这调用此函数MicrosoftMvcJQueryValidation.js:

 errorPlacement: function(error, element) {
        var messageSpan = fieldToMessageMappings[element.attr("name")];
        $(messageSpan).empty();
        $(messageSpan).removeClass("field-validation-valid");
        $(messageSpan).addClass("field-validation-error");
        error.removeClass("input-validation-error");
        error.attr("_for_validation_message", messageSpan);
        error.appendTo(messageSpan);
    },
Run Code Online (Sandbox Code Playgroud)

问题是元素已被jQuery.validatejQuery $(element)表达式包装.

因此element.attr("name")未定义,但element[0].attr("name")有效.

MicrosoftMvcJQueryValidation.js微软的网站上下载了期货.`

我找不到任何其他MicrosoftMvcJQueryValidation版本 - 但我敢肯定必须有一个版本.有人可以帮忙吗?

asp.net-mvc asp.net-mvc-2

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

将域映射到MVC区域

有人在将域映射到MVC区域方面有经验吗?

这是我们的情况:

旧系统(仍然有效但很快将重定向到新商店):

www.example.com - 我们的主要网站,我们发送流量
store.example.com - 我们的商店网站是一个完全独立的网站,在谷歌索引

新系统:

www.example.com - 与以前相同的网站
www.example.com/store - 新商店网站 - 内置于ASP.NET MVC区域

由于商店是一个单独的域,谷歌会在搜索结果中为其指定一个单独的条目.我想在将来保留这个好处,但想知道是否有一个很好的方法将域(store.example.com)映射到MVC区域,或者它是否会比它的价值更麻烦.

PS.我不是想保留现有的索引 - 它是一个完全独立的商店,所以这是不可能的.我只想重定向到新商店中的相应页面.我只是试图不为了SEO目的而失去两个域的好处.

iis asp.net-mvc seo domain-mapping

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

为什么自动将ApplicationInsights.config文件添加到Github存储库中而忽略

我在VisualStudio中创建了一个asp.net mvc项目,并将其发布在Github中。我注意到默认情况下该文件被忽略。ApplicationInsights.config

现在,由于缺少此文件,因此无法在克隆时编译项目。之后,我将其手动添加到存储库中,一切按预期进行。

为什么默认情况下会忽略此文件?将此文件添加到存储库是不好的做法吗?

git asp.net-mvc github visual-studio git-clone

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