小编Tie*_* T.的帖子

Castle Windsor ASP.NET MVC 4和Web API相同的应用程序.只有MVC控制器没有依赖关系?

本文是使用Castle Windsor进行Web API的一个很好的起点,但是如果我创建一个简单的MVC控制器呢?只有在注入没有依赖性时它才有效.

添加这个,即:

public class HomeController : Controller
{
    private readonly IValuesRepository repository;

    public HomeController(IValuesRepository repository)
    {
        this.repository = repository;
    }

    public ActionResult Index()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

导致以下错误:

为此对象定义的无参数构造函数

有没有办法在使用Castle Windsor的同一个应用程序中使用MVC和Web API逻辑?

设置完成后DependencyResolver.SetResolver(...)application_start,我没有注意到我的应用程序有任何改善.

如你看到的.

WebApiScopedLifetimeDependencyResolverSample.Windsor.WindsorDependencyResolver类型似乎没有实现

实现服务定位器:

internal sealed class WindsorDependencyResolver
    : ServiceLocatorImplBase, IDependencyResolver
{
    private readonly IWindsorContainer container;

    public WindsorDependencyResolver(
        IWindsorContainer container)
    {
        if (container == null)
        {
            throw new ArgumentNullException("container");
        }

        this.container = container;
    }

    public object GetService(Type t)
    {
        return this.container.Kernel.HasComponent(t) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net castle-windsor asp.net-mvc-4 asp.net-web-api

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

如何使用控制台应用程序存储MIniProfiler数据

我已经实现了一个控制台应用程序并将Miniprofiler添加到此应用程序中.

现在我想将Miniprofiler数据存储到数据库中.我已经执行了脚本来创建表到数据库.你可以在这里找到脚本!

我已经回复了这个问题

但是如何将探查器值存储到相关表中?

在MVC下面,line用于存储值:

MiniProfiler.Settings.Storage = new SqlServerStorage("<your connection string>");
Run Code Online (Sandbox Code Playgroud)

如何从控制台应用程序中存储这些值?

c# console-application mvc-mini-profiler

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

MVC的datepicker的dd-mm-yyyy格式在Chrome中不起作用

在我的MVC5 Razor代码中输入出生日期我正在使用如下的日期选择器

    @Html.EditorFor(model => model.date_of_birth, 
new { htmlAttributes = new { @class = "m-wrap  datepicker" } })
Run Code Online (Sandbox Code Playgroud)

这里的model.date_of_birth一个EditorFor呼吁,使之作为一个datepicker@class = datepicker

然后使用下面的代码在脚本区域启动datepicker

 $('.datepicker').datepicker({
            format: 'yyyy-mm-dd',
            autoclose: true
        })
Run Code Online (Sandbox Code Playgroud)

这里的日期格式是'yyyy-mm-dd',它工作正常,但用户希望它的dd-mm-yyyy格式.所以我改变了脚本中的格式,因为dd-mm-yyyy 在Internet Explorer中它运行正常,但在Chrome中它给出了某个日期的错误

eg:  14-05-2015
Run Code Online (Sandbox Code Playgroud)

字段出生日期*必须是日期.

11-05-2015铬的日期工作正常.所以我猜Chrome正在采用日期格式mm-dd-yyyy.

格式'dd-M-yyyy'也正常工作只有错误dd-mm-yyyy

有什么办法可以克服这个浏览器特定的错

编辑

$.validator.addMethod('date', function (value, element) {
    if (this.optional(element)) {
        return true;
    }
    var valid = true;
    try {
        $.datepicker.parseDate('dd/mm/yyyy', value);
    }
    catch (err) {
        valid = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc datepicker

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

每个页面上的 ASP.NET MVC 自定义用户字段

背景: 我正在构建越来越多的 Web 应用程序,其中设计者/模板制作者决定添加“个人资料图片”和一些其他用户相关数据,当然只有在有人登录时才添加。

与大多数 ASP.NET MVC 开发人员一样,我使用视图模型来提供 razor 布局,其中包含我需要显示的信息,这些信息来自存储库等。

通过使用可以很容易地显示用户名

HttpContext.Current.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)

如果我想在这些页面上显示我的支持数据存储中保存的信息,该怎么办?ApplicationUser 类中的自定义字段,例如业务部门名称或个人资料图片 CDN url。

(为了简单起见,我们假设我将身份框架与包含我的应用程序用户的实体框架(SQL 数据库)一起使用)

问题

你如何解决这个问题:

  1. 不污染视图模型/控制器树(例如构建 BaseViewModel 或 BaseController 填充/提供此信息?
  2. 无需在每个页面请求这些详细信息时往返数据库?
  3. 如果用户未登录,则不查询数据库?
  4. 当您无法使用 SESSION 数据时(因为我的应用程序通常在多个 Azure 实例上进行扩展 -请阅读此处为什么不可能这样做- 我对 SQL 缓存或 Redis 缓存不感兴趣。

我考虑过使用新的视图模型的部分 - 但这仍然会在每次页面加载时往返 SQL 数据库。会话数据目前是安全的,但是当在天蓝色中扩展时,这也不是一种方法。知道我最好的选择是什么吗?

太长了;

如果用户登录(匿名访问=允许),我想在应用程序的每个页面上显示用户配置文件信息(ApplicationUser)。如何显示此信息而不在每个页面请求都查询数据库?如果没有 Session 类,我该如何做到这一点?在不构建基类的情况下如何做到这一点?

asp.net asp.net-mvc razor asp.net-identity-2

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

使用单个链接对字段进行升序和降序排序

所以我有一个带有表的MVC应用程序,当单击标题时,我希望它根据单击的次数以升序或降序方式切换.

目前我只能降序或升序排序我不知道如何实现两者.userName当用户登录并且我正在使用交换机时,我只是从另一个控制器获取的变量,因为我计划有多个可以排序的标头.

视图

<table>
    <tr>
        <th>
            <a href="@Url.Action("Dispatch", "Calls", new { userName = Session["UserName"], new { sortOrder = "Name_desc" })">Name</a>
        </th>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

调节器

public ActionResult Index(string userName, string sortOrder)
{
    string userName = Session["UserName"].ToString();

    var model = from t in db.Users
                where t.UserName == userName
                select t;

    switch(sortOrder)
    {
        case "Name_desc":
            model = model.OrderByDescending(t => t.UserName);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

linq sorting asp.net-mvc asp.net-mvc-5

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

我的ViewBag无法正常工作的原因是什么?

我有一个跟随ActionResult,controller你可以看到我设置了一个消息,ViewBag如果它成功.然后View它应该输出该消息,如果它不是空的.但是,我无法显示消息,我没有看到问题所在.

[HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                context.Roles.Add(new Microsoft.AspNet.Identity.EntityFramework.IdentityRole()
                {
                    Name = collection["RoleName"]
                });
                context.SaveChanges();

                ViewBag.ResultMessage = "Role created successfully.";
                return RedirectToAction("Index");
            }
            catch (Exception)
            {
                return View();
            }            
        }
Run Code Online (Sandbox Code Playgroud)

这是我的Index.cshtml

@model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>
@{
    ViewBag.Title = "Index";
}

<h2>Roles Listing </h2>

@ViewBag.ResultMessage

@Html.ActionLink("Create New Role", "Create") | @Html.ActionLink("Manage User Role", "ManageUserRoles")

<div>
    <table class="table table-bordered table-condensed table-striped table-hover ">
        <thead>
            <tr>
                <th>Role</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var role in …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc

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

Editor Text Fabricjs-IText格式的字母和同时选择textDecoration

https://jsfiddle.net/gislef/Lvfpq57h/

为了使这个编辑器成为厨具文本编辑器的基础,我查阅了关于ITextfabric js文档,并在Jsfiddle中看到了一些孤立的示例。

我有两个问题:

  • 如何选择字母并仅设置文本中选择的格式?

  • 如何同时选择文本修饰的三个选项:下划线,直通和上划线?

当前代码:

radios5 = document.getElementsByName("fonttype");  // wijzig naar button
for(var i = 0, max = radios5.length; i < max; i++) {
    radios5[i].onclick = function() {

        if(document.getElementById(this.id).checked == true) {
            if(this.id == "text-cmd-bold") {
                canvas.getActiveObject().set("fontWeight", "bold");
            }
            if(this.id == "text-cmd-italic") {
                canvas.getActiveObject().set("fontStyle", "italic");
            }
            if(this.id == "text-cmd-underline") {
                canvas.getActiveObject().set("textDecoration", "underline");
            }
            if(this.id == "text-cmd-linethrough") {
                canvas.getActiveObject().set("textDecoration", "line-through");
            }
            if(this.id == "text-cmd-overline") {
                canvas.getActiveObject().set("textDecoration", "overline");
            }

        } else {
            if(this.id == "text-cmd-bold") { …
Run Code Online (Sandbox Code Playgroud)

javascript html5-canvas fabricjs

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

属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

我想将组名称指定为授权过滤器的属性.

它将采取如下

[FilterConfig.AuthorizeAd(Group = "DirectoryName")]
 public ActionResult GetData()
  {
  }  
Run Code Online (Sandbox Code Playgroud)

坚持硬编码我尝试添加如下

[FilterConfig.AuthorizeAd(Group = Constants.ActiveDirectoryName)]
Run Code Online (Sandbox Code Playgroud)

其中Constants是class并创建成员如下:

public const  string ActiveDirectoryName = "directoryName";
Run Code Online (Sandbox Code Playgroud)

现在我想从app.config中获取它,尝试如下

[FilterConfig.AuthorizeAd(Group = ConfigurationManager.AppSettings["Directory_Name"].ToString()
Run Code Online (Sandbox Code Playgroud)

它将错误消息传递给"一个属性参数必须是一个常量表达式"

如何从配置中分配数据?请建议我.

asp.net-mvc-4

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

什么是asp.net mvc中的response.write?

这很简单但是

在asp net MVC中使用经典webforms"response.write"的最佳方法是什么?特别是mvc5.

让我们说:我只想写一个简单的字符串来控制器屏幕.

在mvc中是否存在response.write?

谢谢.

asp.net asp.net-mvc webforms response.write

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

如何在 ASP.NET MVC 的 EF6 中包含多个导航属性的导航属性,并具有预加载?

我一直在尝试包含以前包含的导航属性的多个导航属性,但我还没有找到正确的语法。实体关系如下图所示:

实体关系

现在,我想加载所有城市,然后是所有部门,然后是所有员工,当我来到 Employee 表时,我想加载 Employee 导航属性:Projects(项目的集合)以及导航属性 Title 和 Country .

我的代码语法是:

var model = dbContext.Cities.Include(c => c.Departments.Select(e => e.Employees.Select(p => p.Projects))).ToList();
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,唯一包含的 Employee 导航属性是 Projects(一个 Project 列表,由于是一对多的关系)。但是如何包含另外两个 Employee 导航属性 Title 和 Country?

c# linq asp.net-mvc entity-framework-6

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