小编Ada*_*dam的帖子

ASP MVC 3在不同视图中使用不同的布局

我有一个ASP MVC应用程序,需要多种不同的布局.在ASP.NET Web Apps中,我刚刚制作了单独的母版页.我如何在ASP MVC 3中执行此操作?

到目前为止,我已经为我需要的每个布局创建了一个单独的Layout.cshtml文件.

我尝试在视图中设置布局,但它正在远离ViewStart.cshtml,它将其设置回站点的默认布局.

另外,我似乎无法使用Razor进行智能感知,所以如果我可以有条件地设置布局,那么我无法探索我在ViewStart中可以做的很多事情.

思考?

asp.net-mvc razor

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

调用ModelState.IsValid的ASP MVC 3测试控制器始终返回true

我有一个ASP MVC 3应用程序,在我的模型中我实现了IValidatableObject.

当我的控制器发布创建或编辑时,我显然只想保存模型,如果它是有效的.

我看到许多博客,帖子和答案都说得像

if(!ModelState.IsValid)
{
      return View();
}
Run Code Online (Sandbox Code Playgroud)

我的问题.为什么ModelState.IsValid在Controller的单元测试中始终为true?

例:

[Test]
public void InValidModelsAreNotAdded()
{
    var invalidModel = new MyModel() { SomeField = "some data", SomeOtherField = "" };

    var result = _controller.Submit(invalidModel);

    _repository.AssertWasNotCalled(r => r.Add(Arg.Is.Anything));

}
Run Code Online (Sandbox Code Playgroud)

型号代码:


public class MyModel : IValidatableObject
{
    public string SomeField { get; set; }
    public string SomeOtherField { get; set; }

    public IEnumerable Validate(ValidationContext validationContext)
    {
        if(string.IsNullOrWhiteSpace(SomeOtherField))
        {
            yield return
                new ValidationResult("Oops invalid.", new[] {"SomeOtherField"});
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

AssertWasNotCalled总是无法通过此测试.

我完成了测试并注意到此测试的ModelState.IsValid为true.就好像没有调用IValidatableObject.Validate一样.它似乎在我运行项目时起作用,但这并不是测试驱动应用程序的方法.

此外,我意识到我可以在 …

asp.net-mvc-3

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

VSIX - 无法加载引用的dll的文件或程序集

我的问题与问题非常相似,只是答案和解决办法对我不起作用.我也在Visual Studio 2012中.

我有一个VSPackage引用另一个项目,它依赖于其他dll.每次我在调试中运行我的包时,都会得到一个异常,即无法找到其他dll.它们位于输出目录中,并且已签名.

我尝试直接通过VSPackage项目引用它们无济于事.

思考?

vspackage vsix visual-studio-2012

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

Amazon EC2 - 使用实例存储根设备转换EBS根设备

我看到您可以将实例存储的实例转换为EBS支持,如此问题所示.但是,我想做相反的事情,拿一个EBS支持的实例并将其转换为Instance Store支持.

这可能吗?我该怎么做呢?

cloud amazon-ec2 amazon-ebs amazon-web-services

13
推荐指数
2
解决办法
5443
查看次数

强烈命名第三方程序集 - 无法加载文件或程序集

我正在编写一个Visual Studio 2012扩展,供内部使用,它要求所有程序集都有一个强名称.我很依赖RestSharp(和一些其他的dll),并且因为它不是强命名,我按照加入一个强大的名字了这个.一切都根据流程的输出工作,甚至视觉工作室声称,如果我在项目引用中查看RestSharp.dll的属性,它就会被强烈命名.但是,当我去使用我的扩展时,我得到一个FileLoadException声明:

Could not load file or assembly 'RestSharp, Version=104.1.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)

有关如何解决此问题或解决此问题的任何想法?

.net strongname vsix visual-studio-2012

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

Razor语法可防止在ActionLink中转义HTML

我有一个ASP MVC 3网站,我们正试图在动作链接中加入一些样式.

我希望html是类似的<a href="/somepath/someaction"><span class="someclass">some text</span> some more text</a>但我无法弄清楚如何告诉Razor <span>正确渲染它.

到目前为止我尝试过的:

@Html.ActionLink("<span class="someclass">some text</span> some more text", SomeAction, SomeController);
Run Code Online (Sandbox Code Playgroud)

导致链接看起来像: <span class="someclass">some text</span> some more text

@Html.ActionLink("<text><span class="someclass">some text</span></text> some more text", SomeAction, SomeController);
Run Code Online (Sandbox Code Playgroud)

导致链接看起来像: <text><span class="someclass">some text</span></text> some more text

@Html.ActionLink(<text>"<span class="someclass">some text</span> some more text"</text>, SomeAction, SomeController);
Run Code Online (Sandbox Code Playgroud)

导致编译错误.

思考?

c# razor asp.net-mvc-3

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

我可以像在Autofac中那样在Unity中的模块中注册我的类型吗?

我非常熟悉Autofac,我非常喜欢Autofac的一个功能是注册模块.有谁知道我怎么能用Unity做到这一点?如果有的话,我很难找到在Google中使用哪些术语来提出相等的统一值.


public class Global : HttpApplication, IContainerProviderAccessor
{
   private static IContainerProvider _containerProvider;

   protected void Application_Start(object sender, EventArgs e)
   {
      var builder = new ContainerBuilder();
      builder.RegisterModule(new MyWebModule());

      _containerProvider = new ContainerProvider(builder.Build());
   }

[...]

   public IContainerProvider ContainerProvider
   {
      get { return _containerProvider; }
   }
}

public class MyWebModule: Module
{
    protected override void Load(ContainerBuilder builder)
    {
       builder.RegisterModule(new ApplicationModule());
       builder.RegisterModule(new DomainModule());
    }
}

public class ApplicationModule: Module
{
    protected override void Load(ContainerBuilder builder)
    {
       builder.Register(c => new ProductPresenter(c.Resolve<IProductView>()))
                .As<ProductPresenter>()
                .ContainerScoped();
    }
}

.net c# ioc-container inversion-of-control unity-container

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

.NET 4.5 HttpClient PUT或SSL over POST总是失败

我在解决这个问题上遇到了很糟糕的时间.我也有一个糟糕的时间从一个应用程序到另一个应用程序一致地再现它.

在某些情况下,我似乎无法识别,在以下异常中使用结果进行调用PUTPOST调用HttpClient.

发送请求时发生错误.

内部异常:
基础连接已关闭:发送时发生意外错误.

内部异常:
无法对已完成的异步结果对象执行此操作.

一切似乎都适用于HTTP,这只发生在HTTPS上.

证书是有效的,但我已经尝试过设置 ServicePointManager.ServerCertificateValidationCallback += (s, c, ch, es) => true;

我试过设置 client.DefaultRequestHeaders.ExpectContinue = false;

我试过,看起来像一百万,其他东西,从标题,身份验证等.

有谁知道我还能检查什么,尝试等等?

代码段:

// this is my registration in my IoC container...
var handler = new HttpClientHandler
{
    UseDefaultCredentials = true,
    Credentials = CredentialCache.DefaultNetworkCredentials,
};

var client = HttpClientFactory.Create(handler);
client.BaseAddress = new Uri(Properties.Settings.Default.BaseUrl);
client.DefaultRequestHeaders.Add("X-CustomHeader", "value");

// _client is constructor injected into my class...
var response = await _client.PutAsJsonAsync("api/resource/" + id, model).ConfigureAwait(false);
response.EnsureSuccessStatusCode(); // …
Run Code Online (Sandbox Code Playgroud)

.net ssl httpclient async-await asp.net-web-api

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

Outlook 2007加载项异常处理

我有一个我最近继承的Outlook 2007加载项,目前在生产中存在一些问题,其中一些用户定期禁用加载项并且看似随机.加载项中没有日志,每个方法/事件调用都有try/catch(和eat)块到加载项代码中.我做了一些谷歌搜索,发现如果有未处理的异常抛出到Outlook,Outlook会对加载项进行"软禁用".

从我可以看出,没有任何异常从加载项中抛出.我想要做的是1)在插件中创建某种全局异常处理程序,以100%确保捕获所有异常.或者2)以某种方式监听outlook"禁用"注册表中的加载项并让该监听器删除outlook正在设置的reg键.

我试图通过以下方式做#1:

AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException;
System.Windows.Forms.Application.ThreadException += Application_ThreadException;
Run Code Online (Sandbox Code Playgroud)

但都没有成功.

我意识到System.Windows.Forms.Application.ThreadException不一定适用于Outlook加载项,但我想为什么不尝试它.

此外,我已经读过Outlook为加载项启动一个单独的AppDomain,所以我希望AppDomain.CurrentDomain可以为此工作.我写了一些代码,故意抛出异常进行测试,无法进入其中任何一个事件,Outlook继续禁用外接程序.

任何帮助/见解将不胜感激.

outlook-2007-addin outlook-addin

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

SSRS 2005在报表而不是服务器上设置SimplePageHeaders?

我有一个报告没有从SSRS 2005导出到excel友好.我知道我可以使用


<Render>
    <Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering">
        <Configuration>
            <DeviceInfo>
                <SimplePageHeaders>True</SimplePageHeaders>
            </DeviceInfo>
        </Configuration>
    </Extension>
</Render>
Run Code Online (Sandbox Code Playgroud)

在rsreportserver.config中,但我不是唯一一个在这台机器上有报告的人.我还发现你可以通过

&rc:SimplePageHeaders=True
Run Code Online (Sandbox Code Playgroud) 在url中以编程方式导出报告.

我尝试&rc:SimplePageHeaders=True在导航到报表管理器时将其添加到URL的末尾,但是当我从下拉列表中选择excel并单击导出时,仍会导出标题.我甚至尝试过设置rc:Command=Renderrc:Format=EXCEL在网址中没有任何运气.

有没有办法做我想做的事情?

注意:我想在内置报表管理器中呈现报表,并使用build in export to excel下拉列表,而不是在应用程序或网站中.

export-to-excel reportingservices-2005 reporting-services

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