小编Ser*_*eit的帖子

ASP.NET MVC.如何创建接受和multipart/form-data的Action方法

我有一个Controller方法需要接受multipart/form-data客户端作为POST请求发送.表单数据有2个部分.一个是序列化的对象application/json,另一个是发送的照片文件application/octet-stream.我的控制器上有一个方法,如下所示:

[AcceptVerbs(HttpVerbs.Post)]
void ActionResult Photos(PostItem post)
{
}
Run Code Online (Sandbox Code Playgroud)

我可以在这里Request.File没有问题地获取文件.但是PostItem为null.不知道为什么?有任何想法吗

控制器代码:

/// <summary>
/// FeedsController
/// </summary>
public class FeedsController : FeedsBaseController
{
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Photos(FeedItem feedItem)
    {
        //Here the feedItem is always null. However Request.Files[0] gives me the file I need  
        var processor = new ActivityFeedsProcessor();
        processor.ProcessFeed(feedItem, Request.Files[0]);

        SetResponseCode(System.Net.HttpStatusCode.OK);
        return new EmptyResult();
    }
Run Code Online (Sandbox Code Playgroud)

}

电线上的客户端请求如下所示:

{User Agent stuff}
Content-Type: multipart/form-data; boundary=8cdb3c15d07d36a

--8cdb3c15d07d36a
Content-Disposition: form-data; name="feedItem"
Content-Type: text/xml

{"UserId":1234567,"GroupId":123456,"PostType":"photos",
    "PublishTo":"store","CreatedTime":"2011-03-19 03:22:39Z"}

--8cdb3c15d07d36a …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc multipartform-data

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

用于Electron应用程序的本地基于文件的数据库

我们正致力于通过Electron提供基于Web和跨平台桌面解决方案的应用程序.

由于客户的要求,桌面客户端无法利用"云"来存储数据; 所有数据都应存储在本地计算机中,或者更好的是,用户应该可以选择将数据库/数据文件保存在外部HDD上,以便同一本地网络上的另一个用户可以使用相同的数据文件.

我们一直在研究NeDB,PouchDB等,但所有这些都使用浏览器本身的Web SQL或IndexedDB来存储数据.从理论上讲,NeDB可以使用文件系统,但这似乎只适用于Node Webkit应用程序.

另一种选择当然是MongoDB,但它需要在Web服务器上设置站点.看看我们的用户如何在自己的机器上设置它,这将仅适用于一个用户,但会使他们很难共享数据(注意:假设用户几乎没有技术知识).

  • 有没有办法强制NeDB将数据保存在文件而不是浏览器内的数据库中?
  • 或者,是否有人知道基于文件的紧凑型数据库与电子/节点配合良好?

我们最好使用NoSQL数据库,但也会考虑基于文件的SQL数据库的选项.

mongodb pouchdb nedb electron

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

一些CSS样式比其他样式更"昂贵"吗?

想象一下,我有这个设置:

<div class="dialog">
    <div class="toolbar first">Bla</div>
    <div class="toolbar">Yada</div>
</div>
Run Code Online (Sandbox Code Playgroud)

和这个样式定义:

.toolbar { background-color: red; }
Run Code Online (Sandbox Code Playgroud)

我实际上想要在2个"工具栏"之间有一个小的2像素边框,所以我看到2种一般可能性,

1)为"对话框"div添加背景颜色,并为第一个"工具栏"添加边距:

.dialog { background-color: #fff }
.toolbar.first { margin-bottom: 2px; }
Run Code Online (Sandbox Code Playgroud)

2)在第一个工具栏中添加一个2px边框:

.toolbar.first { border-bottom: 2px solid #fff }
Run Code Online (Sandbox Code Playgroud)

渲染/申请的"成本"方面有什么不同吗?哪种程度更理想?

我知道这是一个非常小的例子,它可能没有什么不同,但想象一个页面有几十个这些对话框(对话?).

html css performance

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

如何加速Visual Studio 2010中的Azure部署

Visual Studio 2010有一个解决方案Azure ServiceASP.NET MVC 3充当解决Web Role了Azure的服务.除此之外,没有其他角色附加到服务上.

从我在Visual Studio上单击发布直到启动所有实例(2)的那一刻起,每次部署到Azure分段(或生产,就此而言)环境都需要20分钟才能完成.

可以想象,这使得PITA经常发布,或者快速修复一些错误.有没有办法加快这个过程?将软件包上传到de Blob存储并从那里升级会更快吗?我将如何实现这一目标?

我觉得Azure上的在线文档还有很多不足之处.特别是在顺便排除故障时.

谢谢.

deployment azure visual-studio-2010

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

阻止Google分析在开发环境ASP.NET MVC中收集数据

我有一个ASP.NET MVC(3)应用程序,我已经设置了Google分析.问题是每次我从Visual Studio运行时,Google脚本都会开始收集数据,这当然会扭曲真正的结果.

阻止Google Analytics收集开发环境数据的最佳方法是什么?我想要分析的每个页面上使用丑陋的 #if 编译器指令

什么是最佳做法?

谢谢.

asp.net-mvc development-environment google-analytics asp.net-mvc-3

7
推荐指数
3
解决办法
2907
查看次数

方法内联如何在C#中使用自动属性?

我正在阅读Effective C#(第二版),它讨论了方法内联.

我理解这个原理,但是根据书中的两个例子,我看不出它是如何工作的.这本书说:

内联意味着将函数体替换为函数调用.

很公平,所以如果我有一个方法,它的电话:

public string SayHiTo(string name)
{
    return "Hi " + name;
}

public void Welcome()
{
    var msg = SayHiTo("Sergi");
}
Run Code Online (Sandbox Code Playgroud)

JIT编译器可能(将?)将其内联到:

public void Welcome()
{
    var msg = "Hi " + "Sergi";
}
Run Code Online (Sandbox Code Playgroud)

现在,通过这两个例子(逐字逐句):

例1

// readonly name property
public string Name { get; private set; }

// access:
string val = Obj.Name;
Run Code Online (Sandbox Code Playgroud)

例2

string val = "Default Name";
if(Obj != null)
    val = Obj.Name;
Run Code Online (Sandbox Code Playgroud)

这本书提到了代码,但没有进一步讨论它们如何被内联.JIT编译器如何内联这两个例子?

.net c# compiler-construction jit

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

Moq的意外验证行为

在我的最新项目中,Moq让我有点疯狂.我最近升级到版本4.0.10827,我注意到在我看来是一个新的行为.

基本上,当我MakeCall在我正在测试的代码中调用我的模拟函数(在本例中)时,我传入一个object(TestClass).我正在测试的代码TestClass在调用之前和之后对对象进行了更改MakeCall.一旦代码完成,我就调用Moq的Verify功能.我的期望是,Moq将记录我传入的完整对象MakeCall,可能通过深度克隆等机制.通过这种方式,我将能够验证是否MakeCall使用我希望调用它的确切对象进行调用.不幸的是,这不是我所看到的.

我试图在下面的代码中说明这一点(希望在此过程中澄清一点).

  1. 我首先创建一个新TestClass对象.它的Var财产设置为"one".
  2. 然后我创建了模拟对象mockedObject,这是我的测试主题.
  3. 然后我调用MakeCall方法mockedObject(顺便说一下,示例中使用的Machine.Specifications框架允许When_Testing从上到下读取类中的代码).
  4. 然后我测试模拟对象,以确保它的确TestClass使用Var值为"one".正如我所预料的那样,这成功了.
  5. 然后我TestClass通过重新分配Var属性来更改原始对象"two".
  6. 然后我继续尝试验证Moq是否仍然认为使用值为的MakeCall调用.这失败了,虽然我期待它是真的. TestClass"one"
  7. 最后,我测试看看Moq是否认为MakeCall实际上是由TestClass具有值的对象调用的"two".这成功了,虽然我最初预计它会失败.

对我来说,似乎很清楚Moq只保留对原始TestClass对象的引用,允许我改变其值而不受惩罚,对我的测试结果产生不利影响.

关于测试代码的一些注意事项. IMyMockedInterface是我嘲笑的界面. TestClass是我传递给该MakeCall方法的类,因此用于演示我遇到的问题.最后,When_Testing是包含测试代码的实际测试类.它正在使用Machine.Specifications框架,这就是为什么有一些奇怪的项目('因为','它应该...').这些只是框架调用以执行测试的委托.如果需要,应该很容易删除它们并将包含的代码放入标准函数中.我把它留在这种格式中,因为它允许所有Validate调用完成(与'Arrange,Act Assert'范例相比).只是为了澄清,下面的代码不是我遇到问题的实际代码.它只是为了说明问题,因为我在多个地方看到了同样的行为.

using Machine.Specifications;
// …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc moq mspec

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

在ASP.NET MVC 3 Action方法中并行运行任务

我有在ASP.NET MVC 3应用程序,返回的建议搜索行动包含和建议标记与给定的关键字:

[HttpPost]
public ActionResult Search(string query, int pg = 0)
{
    var keywords = query.Split(new[] { ' ', ',', ';' }, 
        StringSplitOptions.RemoveEmptyEntries);

    var containing = (from s in _readonlySession.All<Suggestion>()
                      from k in keywords
                      where (s.Text.ToLower().Contains(k.ToLower()))
                      orderby s.Text
                      select s).Distinct();

    var tagged = (from t in _readonlySession.All<Tag>()
                  from s in t.Suggestions
                  from k in keywords
                  where t.Text.ToLower().Contains(k.ToLower())
                  orderby s.Text
                  select s).Distinct();

    var model = new SearchViewModel
    {
        Query = query,
        Containing = containing.ToList(),
        Tagged = …
Run Code Online (Sandbox Code Playgroud)

linq parallel-processing asp.net-mvc c#-4.0 asp.net-mvc-3

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

Aurelia - 使用不同的路由配置在应用程序根之间切换

UPDATE

这个问题可能与mu问题有关吗? https://github.com/aurelia/framework/issues/400


我有一个具有两个不同根的Aurelia应用程序,一个用于用户的loggen,另一个用于匿名用户.

我在其他Aurelia应用程序中根据此答案中的方法实现了app root 的操作.当login模块是一个没有其他路由的"隔离"模块时,这种方法非常有效,但我现在很难让它运行起来.

index.js - 匿名用户的root

import {inject, useView, Aurelia} from "aurelia-framework";
import AuthService from "./services/auth-service";

@useView("app.html")
@inject(AuthService)
export class Index {   
    constructor(authService) {
        this.auth = authService;
    }

    configureRouter(config, router) {
        config.title = "Super Secret Project";
        config.options.pushState = true;
        config.map([
            { route: ["","home"], moduleId: "home", nav: true, title: "Beginscherm" },
            { route: "over", moduleId: "about", nav: true, title: "Over" },
            { route: "inloggen", moduleId: "account/login", nav: false, title: "Inloggen" …
Run Code Online (Sandbox Code Playgroud)

aurelia aurelia-router

7
推荐指数
2
解决办法
2452
查看次数

ASP.NET MVC应用程序的WatiN最佳实践/经验法则

我是狂热的TDD和BDD粉丝,但在UI测试方面做得不多.我有一个ASP.NET MVC 3应用程序与许多MSpec测试,我想使用WatiN添加演示文稿测试.

你测试什么样的东西?我是否必须为UI的初始加载编写测试,或仅针对因用户交互而更改的内容?

简而言之,在编写WatiN(和一般的UI测试)测试时,有什么好的经验法则和最佳实践?

asp.net-mvc watin coded-ui-tests asp.net-mvc-3

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