小编Cha*_*ino的帖子

在运行时或在构建时连接和缩小JavaScript - ASP.NET MVC

作为此问题的扩展,在此处链接用户控件中的JavaScript库我之后是一些关于人们如何在运行时或在构建时连接和缩小JavaScript的示例.我还想看看它如何适用于您的母版页.

我不介意页面特定的文件被缩小和链接,因为它们当前是(见下文),但主母版页上的所有JavaScript文件(我有大约5或6)我想连接和缩小.

任何同时融入CSS连接和缩小的人的加分!:-)

当前的母版页,包含我想要连接和缩小的常见JavaScript文件:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<head runat="server">
    ... BLAH ...
    <asp:ContentPlaceHolder ID="AdditionalHead" runat="server" />
    ... BLAH ...
    <%= Html.CSSBlock("/styles/site.css") %>
    <%= Html.CSSBlock("/styles/jquery-ui-1.7.1.css") %>
    <%= Html.CSSBlock("/styles/jquery.lightbox-0.5.css") %>
    <%= Html.CSSBlock("/styles/ie6.css", 6) %>
    <%= Html.CSSBlock("/styles/ie7.css", 7) %>
    <asp:ContentPlaceHolder ID="AdditionalCSS" runat="server" />
</head>
<body>
    ... BLAH ...
    <%= Html.JSBlock("/scripts/jquery-1.3.2.js", "/scripts/jquery-1.3.2.min.js") %>
    <%= Html.JSBlock("/scripts/jquery-ui-1.7.1.js", "/scripts/jquery-ui-1.7.1.min.js") %>
    <%= Html.JSBlock("/scripts/jquery.validate.js", "/scripts/jquery.validate.min.js") %>
    <%= Html.JSBlock("/scripts/jquery.lightbox-0.5.js", "/scripts/jquery.lightbox-0.5.min.js") %>
    <%= Html.JSBlock("/scripts/global.js", "/scripts/global.min.js") %>
    <asp:ContentPlaceHolder ID="AdditionalJS" runat="server" />
</body>
Run Code Online (Sandbox Code Playgroud)

在这样的页面中使用(我很满意):

<asp:Content ID="signUpContent" ContentPlaceHolderID="AdditionalJS" runat="server">
    <%= …
Run Code Online (Sandbox Code Playgroud)

javascript css c# asp.net-mvc minify

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

使用Ninject.Web.Mvc 2.0和ASP.NET MVC 1.0时出现"多个匹配的绑定可用"错误

最近我切换到Ninject 2.0版本并开始收到以下错误:

Error occured: Error activating SomeController
More than one matching bindings are available.
Activation path:
  1) Request for SomeController

Suggestions:
  1) Ensure that you have defined a binding for SomeController only once.

但是,我无法找到某种复制路径.有时它会发生,有时它不会发生.我正在使用NinjectHttpApplication自动控制器注入.控制器在单独的程序集中定义:

public class App : NinjectHttpApplication
{
    protected override IKernel CreateKernel()
    {
        INinjectModule[] modules = new INinjectModule[] {
            new MiscModule(),
            new ProvidersModule(),
            new RepositoryModule(),
            new ServiceModule()
        };

        return new StandardKernel(modules);
    }

    protected override void OnApplicationStarted()
    {
        RegisterRoutes(RouteTable.Routes);
        RegisterAllControllersIn("Sample.Mvc");
        base.OnApplicationStarted();
    }

    /* ............. */

}
Run Code Online (Sandbox Code Playgroud)

也许有人熟悉这个错误. …

asp.net-mvc ninject

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

发布期间自定义app_offline.htm文件

当我发布我的ASP.NET MVC应用程序时,它会生成一个app_offline.htm文件,以便在网站更新网站时使网站脱机,然后在发布成功后删除该文件.

这很酷,我真的很喜欢这个想法,但是我想创建我自己的自定义app_offline.htm文件,该文件是发布操作所知道的,并将它放在不影响我的开发站点的地方 - 也就是说它不在我的开发站点的根目录一直在脱机.

编辑:从Scott Gu关于app_offline.htm的帖子的评论来看,似乎用VS 2005无法自定义app_offline.htm文件 - 这是用VS 2008和现在的VS 2010改变的吗?

asp.net asp.net-mvc publish visual-studio-2010 app-offline.htm

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

ASP.NET MVC - 单元测试过度杀伤?(TDD)

所以我开始抓住TDD错误,但我想知道我是否真的做得对......我似乎在写很多测试.

越多的测试越好,当然,但我有一种感觉,我已经过度了.说实话,我不知道我能用多长时间来编写这些简单的重复测试.

例如,这些是来自我的AccountController的LogOn操作:

public ActionResult LogOn(string returnUrl)
{
    if (string.IsNullOrEmpty(returnUrl))
        returnUrl = "/";

    var viewModel = new LogOnForm()
    {
        ReturnUrl = returnUrl
    };

    return View("LogOn", viewModel);
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult LogOn(LogOnForm logOnForm)
{
    try
    {
        if (ModelState.IsValid)
        {
            AccountService.LogOnValidate(logOnForm);

            FormsAuth.SignIn(logOnForm.Email, logOnForm.RememberMe);

            return Redirect(logOnForm.ReturnUrl);
        }
    }
    catch (DomainServiceException ex)
    {
        ex.BindToModelState(ModelState);
    }
    catch
    {
        ModelState.AddModelError("*", "There was server error trying to log on, try again. If your problem persists, please contact us.");
    }

    return View("LogOn", logOnForm);
}
Run Code Online (Sandbox Code Playgroud)

非常自我解释.

然后,我有以下测试套件 …

tdd asp.net-mvc unit-testing

17
推荐指数
2
解决办法
1420
查看次数

实体框架5升级后,左右键的多对多关系会被翻转

我有一些代码可以在代码中保存多对多的关系.它与Entity Framework 4.1一起运行良好,但在更新到Entity Framework 5后,它失败了.

我收到以下错误:

INSERT语句与FOREIGN KEY约束"FK_WebUserFavouriteEvent_Event"冲突.冲突发生在数据库"MainEvents",表"dbo.Event",列"Id"中.

我正在使用POCO实体和自定义映射.标准字段和多对一关系映射似乎工作正常.

UPDATE

好的,所以我安装了SQL Profiler并且情节已经变厚......

exec sp_executesql N'insert [dbo].[WebUserFavouriteEvent]([WebUserId], [EventId])
values (@0, @1)
',N'@0 int,@1 int',@0=1820,@1=14
Run Code Online (Sandbox Code Playgroud)

意思是:

WebUserId = @0 = 1820
EventId = @1 = 14
Run Code Online (Sandbox Code Playgroud)

有趣的是,EF5似乎已经翻转了外键 ...... WebUserId应该是14,EventId 应该是1820,而不是像现在这样.

我查看了映射代码,我99%我已经正确设置了它.有关详细信息,请参阅实体框架Fluent API - 关系MSDN文章.

注意:我还发现这不仅限于保存,SELECT也被破坏.

这是所有相关代码:

服务层

public void AddFavEvent(WebUser webUser, Event @event)
{
    webUser.FavouriteEvents.Add(@event);

    _webUserRepo.Update(webUser);
}
Run Code Online (Sandbox Code Playgroud)

知识库

public void Update<T>(params T[] entities)
    where T : DbTable
{
    foreach (var entity in entities)
    {
        entity.UpdatedOn …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework entity-framework-5

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

用于属性的ASP.NET MVC编辑器模板

通常我通过@ Html.RenderModel渲染我的表单,但这次我有一个复杂的渲染逻辑,我手动渲染它.我决定为一个属性创建一个编辑器模板.这是代码(从默认对象编辑器模板实现粘贴的副本):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<% var modelMetadata = ViewData.ModelMetadata; %>
<% if (modelMetadata.HideSurroundingHtml) { %>
    <%= Html.Editor(modelMetadata.PropertyName) %>
<% } else { %>
    <% if (!String.IsNullOrEmpty(Html.Label(modelMetadata.PropertyName).ToHtmlString())) { %>
        <div class="editor-label"><%= Html.Label(modelMetadata.PropertyName) %></div>
    <% } %>
    <div class="editor-field">
        <%= Html.Editor(modelMetadata.PropertyName) %>
        <%= Html.ValidationMessage(modelMetadata.PropertyName) %>
    </div>
<% } %>
Run Code Online (Sandbox Code Playgroud)

以下是我如何使用它:

@Html.EditorFor(x => x.SomeProperty, "Property") //"Property" is template above
Run Code Online (Sandbox Code Playgroud)

但它不起作用:无论DisplayName如何都会呈现标签,并且根本不呈现编辑器(在Watches Html.Editor中(modelMetadata.PropertyName显示空字符串).我做错了什么?

.net asp.net-mvc mvc-editor-templates

12
推荐指数
2
解决办法
6903
查看次数

FormsAuthentication - 处理用户名的更改

我的ASP.NET MVC Web应用程序允许管理员更改自己或其他用户的用户名.

用户通过呼叫登录FormsAuthentication.SetAuthCookie(userName [string], createPersistentCookie [bool]).他们通过电话登出FormsAuthentication.SignOut().我知道在更新用户名后我需要将其签名并重新登录.但是我如何检索现有的价值createPersistentCookie呢?例如,如何在重新签名时保留原来的"记住我"设置?

asp.net asp.net-mvc forms-authentication

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

我可以使用MongoDb驱动程序从node.js调用rs.initiate()和rs.Add()吗?

我想在使用Docker和Kubernetes时通过边车自动设置MongoDb副本集的过程.

以上的设置是不是非常重要的,它归结为是,我需要能够调用蒙戈副本集命令(例如rs.initiate(),rs.add('anotherserver'),rs.conf(),rs.reconfig()从Node.js应用程式等).

注意:它不必来自节点应用程序,如果有人知道完成同样事情的另一种方式,请分享您的想法.

更新:我能够使这个工作,并使其他人使用的边车开源.

mongodb node.js docker kubernetes

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

Asp.net Mvc:使用LINQ to SQL创建模型类

我正在努力学习Asp.net Mvc所以我正在尝试 这个教程.

他们讨论了存储库模式以及如何轻松地更改为另一种数据访问技术,而不是直接将Linq调用到Sql.

在控制器类中使用LINQ to SQL会使将来很难切换数据访问技术.例如,您可能决定从使用Microsoft LINQ切换到使用Microsoft Entity Framework作为数据访问技术.在这种情况下,您需要重写访问应用程序中数据库的每个控制器.

注意:在阅读本教程之前,我从未真正理解界面是如何工作的,并且它仍然不是100%清晰.我现在把它看作某种类的"模板".

在成功使用Linq to Sql之后,我认为尝试Ado.net实体框架会很好,因为我已经阅读了很多相关内容.他们说使用存储库模式会很容易切换,所以我想我会测试它.

我的问题是:如何更改为Ado.net EF?

这是我认为我应该做的.

  • 添加Movie.edmx文件并对其进行配置(添加我的影片表).
  • 基于IMovieRepository编写一个新类,并将其称为MovieEFRepository.
  • 将控制器构造函数中的参数更改为MovieEFRepository.这是我觉得奇怪的第一件事,因为在教程中他们说如果你改用其他数据源,不使用存储库会强制你改变所有的控制器.我是否需要更改每个控制器,因为我指定了MovieRepository类?
  • 我认为我需要做的最后一次调整是改变视图.因为它使用的是由Linq to Sql设计器创建的Product类.我不确定我将如何做到这一点.我想我应该使用一些不依赖于dbml文件的对象?

如果我对Asp.net Mvc略微简单化一下,请原谅我.我是webdesigner,对Asp.net webdevelopment很感兴趣.

asp.net-mvc repository-pattern

5
推荐指数
2
解决办法
1575
查看次数

验证失败时,TextBox周围出现红色边框

我正在使用ASP.NET MVC 2.

Html.DropDownListFor和Html.TextAreaFor在验证失败时自动获得红色边框.

如何在验证失败时使TextBox的四个边框(使用Html.TextBoxFor)变为红色?

例如,我有一个需要的TextBox,当用户提交表单时没有在文本框中指定值,我希望文本框有红色边框.

validation asp.net-mvc-2

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