小编Lef*_*tyX的帖子

ASP.NET MVC,Nhibernate和小型/中型项目的存储库

我目前正在开发一个小型的ASP.NET MVC项目.
我试图实现Nhibernate持久化MS Sql Server数据库.花了很长时间研究DDD和互联网上发现的其他项目后,我决定采用存储库模式.现在我面临着两难的局面.
使用Nhinbernate时是否真的需要存储库?
拥有一个与Nhinbernate交互的服务层(我目前没有服务层)不是更好,避免写多次这样的事情:

public Domain.Reminder GetById(Guid Code)
{
    return (_session.Get<Domain.Reminder>(Code));
}

public Domain.Reminder LoadById(Guid Code)
{
    return (_session.Load<Domain.Reminder>(Code));
}

public bool Save(Domain.Reminder Reminder)
{
    _session.SaveOrUpdate(Reminder);
    return (true);
}

public bool Delete(Domain.Reminder Reminder)
{
    _session.Delete(Reminder);
    return (true);
}
Run Code Online (Sandbox Code Playgroud)

我找到了一个旧的Ayende的POST,这是针对存储库的.
我知道围绕这些主题有一个很大的争论,答案总是......依赖,但在我看来,由于抽象层次过多,事情变得更加复杂,难以理解.
我错了吗?

nhibernate asp.net-mvc repository-pattern

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

我为什么要打扰实体框架?

可能重复:
实体框架4与NHibernate

我一直在尝试开发软件超过10年.
我主要使用MS技术,从VB3,COM +开始,然后是ASP.NET和ASP.NET MVC.
在这些年里,我使用了所有新的闪亮的MS技术来访问数据库.
我记得记录集,数据集,rds,ado,ado.net等等.每次我觉得它是最后一个,但每隔几年,再一次,试图学习一个本来会持久的新事物.几个月.现在我跳上了Nhibernate旅行车,我非常喜欢那个家伙.我想开始使用Entity Framework做一些事情,但我想我可以等下一个;-)你对此有什么看法?

nhibernate entity-framework

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

将复杂的视图模型POST到控制器

我试图掌握Knockout(2.2.0)背后的概念.
由于我正在使用ASP.NET MVC 4,我想我可以遵循一个具有"复杂"视图模型(master-details)的示例.

我唯一能找到的就是MvcMusicStore.

代码很容易阅读,我已经想出如何从服务器读取视图模型并在客户端上构建视图模型.

这是我的C#ViewModel:

public class Person
{
    public Person()
    {
        this.Phones = new List<Phone>();
    }
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }

    public IList<Phone> Phones { get; set; }
}

public class Phone
{
    public string Model { get; set; }
    public string Number { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的控制器将一个填充的模型返回给视图,该视图将其转换为一个挖空视图模型:

var data = @Html.Raw(new …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-4 knockout-mapping-plugin knockout.js

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

OwinContext.Request多部分/表单数据解析?

有没有一种简单的方法可以从OwinContext.Request实例解析多部分/表单数据信息 ?

我知道如何使用HttpContext.Current.Request.Form.Get()做到这一点,但是我不确定我是否真的想在Owin管道中做到这一点。

我知道我可以使用.ReadFormAsync()来获取IFormCollection,它对于标准提交似乎很好用,但是使用多部分/表单数据后,边界值,内容类型和变量名都被放入了键。因此,我不能只是执行formVars.Get(“ VariableName”),因为它不是变量名,而是一个复合值。似乎它不应该那样做...对吗?

public AppFunc PreAuthMiddleware(AppFunc next) {
  AppFunc appFunc = async (IDictionary<string, object> environment) => {
    IOwinContext context = new OwinContext(environment);
    IFormCollection formVars = await context.Request.ReadFormAsync();

    ... Now What ...

    await next.Invoke(environment);
  };
  return appFunc;
}
Run Code Online (Sandbox Code Playgroud)

我希望访问表单变量和文件数据就像使用HttpContext一样容易,但是似乎还有很多工作要做。

如果有人对此有任何见解,请告诉我。否则,如果我看到主要的内容类型是multi-part / form-data,那么我可能最终只会一起破解密钥名称。

forms multipartform-data owin

5
推荐指数
0
解决办法
1133
查看次数

jqGrid + twitter bootstrap(2.1.0):navbar更改样式

我试图弄清楚如何解决这个问题,但我似乎无法找到解决方案.

我正在使用jqGrid 4.4.1(jQuery UI 1.8.23),我刚开始使用twitter bootstrap.
正如你在这个小提琴中看到的那样,导航栏很麻烦.
页面选择器元素比它应该长得多.
这是没有twitter bootstrap的jqGrid 的小提琴.

那里有谁可以帮我解决这个问题吗?
还有其他我应该注意的问题吗?

谢谢你的帮助.

jquery jqgrid twitter-bootstrap

4
推荐指数
1
解决办法
5606
查看次数

Katana Webserver没有找到clientSecret

我下载了katana项目,想在沙箱项目中尝试客户端/服务器.

我为OAuthValidateClientAuthenticationContext遇到了一个问题:

public bool TryGetFormCredentials(out string clientId, out string clientSecret)
{
    clientId = Parameters.Get(Constants.Parameters.ClientId);
    if (!String.IsNullOrEmpty(clientId))
    {
        clientSecret = Parameters.Get(Constants.Parameters.ClientSecret);
        ClientId = clientId;
        return true;
    }
    clientId = null;
    clientSecret = null;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

clientSecret为null,因此以下内容未验证客户端.

    private Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
    {
        string clientId;
        string clientSecret;
        if (context.TryGetBasicCredentials(out clientId, out clientSecret) ||
            context.TryGetFormCredentials(out clientId, out clientSecret))
        {
            if (clientId == "123456" && clientSecret == "abcdef")
            {
                context.Validated();
            }
            else if (context.ClientId == "7890ab" && clientSecret == "7890ab")
            {
                context.Validated();
            }
        } …
Run Code Online (Sandbox Code Playgroud)

owin katana

4
推荐指数
1
解决办法
1722
查看次数

ASP.NET oAuth通过SSL访问令牌

我按照这篇文章http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api通过https强制执行所有api调用.

我使用Visual Studio模板之一通过以下代码启用oAuth:

        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
            AllowInsecureHttp = true
        };
Run Code Online (Sandbox Code Playgroud)

这基本上说我们可以通过http://server.com/Token网址请求访问令牌.

我的问题是如何通过SSL强制执行令牌检索(任何非https请求令牌的请求都将被拒绝).

asp.net ssl https oauth-2.0 asp.net-web-api

4
推荐指数
1
解决办法
2339
查看次数

无法使用Select2以编程方式选择选项

我有一个Select2工作正常附加到选择列表,但当有人输入一个新项目,我重新绑定选择列表并尝试以编程方式选择新项目,它拒绝显示.
还有很多其他帖子,但他们的解决方案对我不起作用.

  1. 使用.select2("val", value).什么也没做.
  2. 使用.select2("data", value).什么也没做.不确定这应该是多么不同.
  3. 使用该InitSelection选项设置值.这会导致以下错误消息:Uncaught Error: Option 'initSelection' is not allowed for Select2 when attached to a select element.

在将新选项添加​​到数据库后的Ajax成功函数中,我有以下Javascript:

BindDishes(RestaurantID); //rebinds the select list successfully
$('#hidDishID').val = data.DishID; //populates a hidden field
var arr = '[{id: "' + data.DishID + '", text: "' + data.DishName + '"}]'; 
$("#dd").select2("data", arr);
Run Code Online (Sandbox Code Playgroud)

所以在这个最新的迭代中,我试图根据另一个建议的解决方案提供一个包含选择列表项中的id和text的数组,但仍然没有发生任何事情.我究竟做错了什么?将Select2与选择列表一起使用时,这是不可能的?

编辑:我在MVC中有以下行创建选择列表:

@Html.DropDownGroupListFor(m => m.DishID, Model.GroupedSelectList, "Select a dish", new { id="dd",style="width:470px;" })
Run Code Online (Sandbox Code Playgroud)

这必须通过绑定到模型中的DishID来引起问题,该模型在来自服务器时最初是空白的.DropDownGroupListFor只是一个HTML助手,它允许在Select中使用OptionGroups,但它必须是一个有问题的绑定.这里最好的方法是什么,以不同的方式绑定或以某种方式更新模型的DishID,不确定最佳实践?

javascript asp.net-mvc jquery jquery-select2

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

如何在JavaScript Date()中仅获取一周中的日期名称或数字

我正在使用以下代码段来获取工作正常的每月的第一天和最后一天,但我需要的只是获取Name字符串,例如“ Fri”,“ Wed”,“ Sun”,并且代码返回的是长日期格式:

2014年10月31日,星期五00:00:00 GMT-0700(太平洋夏令时间)

var today = new Date();
var lastOfMonth = new Date(today.getFullYear(),today.getMonth()+1, 0);

var today = new Date();
var firstOfMonth = new Date(today.getFullYear(),today.getMonth(), 1);
Run Code Online (Sandbox Code Playgroud)

您能否让我知道我如何只能获取getDay()第一天的一周中的一天的名称或编号?

javascript jquery

4
推荐指数
1
解决办法
6770
查看次数

在 asp.net mvc5 中执行长时间运行任务的最佳方法

我正在开发一个部署在 IIS 7.0 中的 asp.net mvc5 web 应用程序 + 实体框架 6.0。目前我有一个 NetworkScanning 服务器,我将其实现为正常操作方法,可以通过两种方式启动:-

1.基于 global.asax 中定义的时间表:-

static void ScheduleTaskTrigger()
        {
            HttpRuntime.Cache.Add("ScheduledTaskTrigger",
                                  string.Empty,
                                  null,
                                  Cache.NoAbsoluteExpiration,
                                  TimeSpan.FromMinutes(Double.Parse(System.Web.Configuration.WebConfigurationManager.AppSettings["ScanInMinutes"])), // as defined inside the web.config
                                  CacheItemPriority.NotRemovable,
                                  new CacheItemRemovedCallback(PerformScheduledTasks));
        }

        static void PerformScheduledTasks(string key, Object value, CacheItemRemovedReason reason)
        {
            //Your TODO
            HomeController h = new HomeController();
            var c = h.ScanNetwork("***", "allscan");
            ScheduleTaskTrigger();
        }
Run Code Online (Sandbox Code Playgroud)

2.或者从用户浏览器手动调用action方法。

现在 action 方法看起来如下(我删除了很多代码,因为这个想法是为了提示我在 action 方法中所做的事情):-

public async Task<ActionResult> ScanNetwork(string token, string FQDN) 
        {
            string TToken = System.Web.Configuration.WebConfigurationManager.AppSettings["TToken"];//get the T token from …
Run Code Online (Sandbox Code Playgroud)

asp.net iis asp.net-mvc quartz.net asp.net-mvc-5

4
推荐指数
1
解决办法
4852
查看次数