小编Jez*_*Jez的帖子

是否可以使用RedirectToAction清除路径值?

我想重定向到同一控制器中的操作,但丢失路由值(特别是id值).事实证明这非常困难.我有像这样配置的路由:

context.MapRoute(
    "Monitoring_controllerIdSpecified",
    "Monitoring/{controller}/{id}/{action}",
    new { action = "Status" }
);

context.MapRoute(
    "Monitoring_default",
    "Monitoring/{controller}/{action}",
    new { controller = "Events", action = "Index" }
);
Run Code Online (Sandbox Code Playgroud)

......以及EventsController像这样的动作方法:

public ActionResult Status(int id) {
    if (id > 1000) {
        TempData["ErrorMessage"] = "ID too high.";
        return RedirectToAction("Index", new { id = (int?)null });
    }

    // (code to display status)
}
Run Code Online (Sandbox Code Playgroud)

如果我然后访问类似的东西/Monitoring/Events/1001,RedirectToAction确实被调用,但我被重定向到/Monitoring?id=1001而不是仅仅/Monitoring.它似乎匹配第一个路由,Monitoring_controllerIdSpecified即使该路由具有id强制路由参数,我告诉它设置id为null,并且奇怪地id变成查询字符串键.换句话说,它没有正确清除/删除id路线值.设置id为 …

asp.net-mvc routes

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

我怎样才能等待最短的时间?

我有一个异步C#方法,我获取HTTP资源,我在无限循环中进行.但是我不想太快地击中资源.我目前的代码是:

HttpClient http = new HttpClient();
while (true) {
    // Long-poll the API
    var response = await http.GetAsync(buildUri());

    Console.WriteLine("Resp: " + response.ToString());
    Console.WriteLine("CONTENT:");
    Console.WriteLine(await response.Content.ReadAsStringAsync());
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够确保每10秒钟不会发生一次HTTP请求.所以我想在循环开始时启动一个10秒计时器,最后说"等待完成10秒计时器".有没有办法在C#.NET中执行此操作?

.net c# asynchronous

10
推荐指数
2
解决办法
977
查看次数

与CSS垂直对齐

是的,是的,我知道这是关于与CSS垂直对齐的另一个问题,它之前已经完成了一百万次.请放心,我已经多次遇到过这个问题,而且我已经完成了关于使用CSS垂直居中的各种方法的阅读.我在这里问,因为这些方法都没有做我想做的事情,而我只是想确保我的怀疑(CSS垂直对齐被破坏而不会做我想做的事情)绝对是正确的.

首先,这是我的测试用例:http://www.game-point.net/misc/testAlign/

这是标准:

  • 我想垂直对齐'居中文本',相对于包含'TestTestTest ...'文本的DIV.
  • 我不想指定任何高度.
  • 我希望'TestTestTest'和'Centered text'DIV根据它们的文本数量和它们的宽度限制动态地获得它们的高度.
  • 我不想使用Javascript.

即使在CSS3中,这似乎也是不可能的,更不用说CSS2了.令人讨厌的是我几乎就在那里; 该position:absolute; top:-50%;DIV工程设置DIV的顶部一半,容器DIV.问题是内部DIV,position:relative; top:-50%;没有做任何事情来将内容向上移动一半的高度,使其完全居中,因为CSS说绝对定位的DIV没有高度,因此top:-50%没有意义.据我所知,这只是CSS中的一个根本缺陷,没有特别的原因.一个绝对定位的元素确实有一个高度,我不知道为什么CSS假装它没有.我只是想问一下是否有人对我如何达到预期的效果有任何想法,如图所示我在上面列出的标准.具有讽刺意味的是IE6/7/8的'破碎'盒子模型,在怪癖模式下,给了我这种效果.很遗憾他们在IE9中'修复'它所以它不再存在了.

html css firefox internet-explorer vertical-alignment

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

Visual Studio数据库项目中的版本控制更新

我的公司使用Visual Studio数据库项目来部署对数据库的更新.据我所知,它提供了比较项目架构和目标数据库的状态,并生成代码以将后者的架构更新为前者的功能.它还提供了一个预部署脚本和一个部署后脚本,但仅此而已.

缺少的是版本控制和/或排序的任何概念.例如,如果我想将一个不可为空的FK列添加到表中,我需要分两步完成 - 首先,将其添加为具有部署后脚本的可空列,以更新行以获得有意义的值第二,使列不可为空.这些必须按顺序发生.

据我所知,无法通过部署Visual Studio数据库项目来确保部署前和部署后脚本的顺序排序.我在这儿吗?这有两个含义:首先,一旦创建了表,你就无法真正地将一个不可为空的FK列添加到表中;其次,你的部署前和部署后的脚本将继续增长和增长并包含多年前就是因为它们都是在每次部署数据库都运行的.

有没有办法使用Visual Studio数据库项目进行版本更新,如果没有,是否有允许这种版本控制的项目类型?

database sql-server visual-studio-2012 sql-server-data-tools

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

我可以让 TypeScript 包含用于转译的 node_modules 吗?

好的,所以我在设置 Node.js TypeScript 项目时遇到了一个有趣的情况。我希望能够使用非相对require引用来引用我的本地模块。TypeScript 和 Node.js 查找模块的方式是node_modules在当前目录中查找目录,然后在每个父目录中查找,直到找到包含引用的目录。因此,假设我有一个要在以下目录结构中引用的模块:

/node_modules        <-- Main NPM modules dir
    /...
/package.json
/src
    /node_modules    <-- My local modules dir
        /modules
            /myModule.ts
    /scripts
        /init.ts
Run Code Online (Sandbox Code Playgroud)

...在init.ts我这样引用myModule

import myModule from "modules/myModule";
Run Code Online (Sandbox Code Playgroud)

据我了解,我希望 TypeScript 将我的node_modules目录dist与所有其他.ts文件目录一起转换到输出目录,以便该dist目录如下所示:

/node_modules        <-- Main NPM modules dir
    /...
/package.json
/dist
    /node_modules    <-- My local modules dir
        /modules
            /myModule.js
    /scripts
        /init.js
Run Code Online (Sandbox Code Playgroud)

然后,当 Node.js 查找模块时,它会在dist/node_modules/modules/myModule.js. 所以在这种情况下,我实际上确实希望 TypeScriptnode_modules在其输入文件中包含该目录。不过,我似乎缺少一些基本的东西,因为 TypeScript 实际上默认忽略了这个目录。 …

javascript node.js transpiler typescript

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

我的VIEWSTATE是加密的吗?

我有点困惑.我没有明确设置Web.config <pages ViewStateEncryptionMode="Always" />,所以这个MSDN页面说它应该默认为Auto. 此MSDN页面表示,Auto如果控件通过调用RegisterRequiresViewStateEncryption方法请求加密,则应使视图状态信息加密.但是,我的控件都没有调用该方法.所以看起来我的观点状态实际上应该不加密.

但是,当我将视图状态复制/粘贴到各种在线 视图状态 解码器之一时,我被告知视图状态序列化数据无效.那么,我的viewstate是否加密?有一些明显的方法可以说明吗?是否更改了默认的ASP.net行为以通过defualt对viewstate进行编码,除非您禁用它?

asp.net security encryption viewstate

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

将IIS Web应用程序发布到网站根目录?

我正在尝试使用Web Deploy将Web应用程序导入IIS7.我使用Visual Studio的"发布Web"功能将其打包成ZIP文件,当我选择zip时,我会进入"应用程序包信息"屏幕.

它要求我的一个设置是"应用程序路径".如果我把它留空(所以它基本上只是说"我的网站/"),并尝试继续,IIS给我的消息:

此应用程序将安装到"我的网站"中.大多数应用程序通常安装在根目录下的文件夹中,例如"我的网站/博客".你确定吗?

我不明白为什么它会发出这个警告.我很想对这个对话框说"OK",但我想先检查一下 - 有什么明显我做错了吗?当然,如果我想我的web应用程序是整个网站,我将它安装到根或否则用户将始终具有访问http://host/MyAppDirectory/,而不只是http://host/-我为什么希望有不必要的后缀MyAppDirectory/?更好的做法是将应用程序安装到MyAppDirectory某个目录并以某种方式将其映射到网站根目录,或者只是将应用程序安装到网站根目录是否可以,尽管有警告?

另外,假设尽管有警告可以将应用程序安装到网站根目录,有没有办法从"应用程序包信息"屏幕中完全删除"应用程序路径"设置(和相关警告),并始终假设该应用程序应该安装到网站根目录?

deployment iis-7 web-applications visual-studio web

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

我应该关闭Assembly.GetManifestResourceStream返回的流吗?

我曾经认为,使用该Assembly.GetManifestResourceStream方法访问嵌入式汇编资源时Stream,最好在完成后关闭返回.但是,我刚刚在以下文章中发现了一些内容:

http://msdn.microsoft.com/en-us/library/ms950960.aspx

// Get the stream that holds the resource
// NOTE1: Make sure not to close this stream!
// NOTE2: Also be very careful to match the case
//        on the resource name itself
Stream stream =
  assem.GetManifestResourceStream("Azul.jpg");

// Load the bitmap from the stream
this.BackgroundImage = new Bitmap(stream);
Run Code Online (Sandbox Code Playgroud)

这里的评论说,流应该不会被关闭,虽然文章没有提到的原因.对谷歌的搜索没有提供任何结论; 有些人似乎关闭了这个流,其他人则没有,并说垃圾收集器会处理它.

我应该关闭返回的流Assembly.GetManifestResourceStream吗?我不应该有特别的理由吗?

c# stream

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

自定义与非自定义属性?

实现ICustomAttributeProvider接口的东西将允许您获取已通过该GetCustomAttributes方法应用于它的自定义属性.据我所知,自定义属性基本上是一个特殊的类(以"属性"结尾并扩展Attribute类),它是使用适当的语法([FooAttribute]在方法/类/等之前)应用于类似方法或类的类.例如,在C#中.但如果这是一个自定义属性,那么什么是非自定义属性?我曾经认为与.NET捆绑在一起的属性是非自定义的,但是GetCustomAttributes甚至会返回我的属性System.ThreadStaticAttribute,这些属性是.NET框架的核心.

是否存在非自定义属性,或者"自定义属性"只是一个重言式?

.net c# custom-attributes

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

如何在Chrome开发者工具中"添加手表"?

我似乎找不到在Chrome开发人员工具中为所选JavaScript文本添加监视表达式的方法,就像我在Firebug中使用Ctrl + W一样.在Chrome中真的没办法做到这一点吗?我甚至无法右键单击选择,因为它一旦取消就会取消选择,并且没有"添加监视"上下文菜单项.在调试JS时,我是否真的必须输入我要添加的每个手表?

javascript google-chrome-devtools

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