小编And*_*NET的帖子

从MVC 5.1 EnumDropDownListFor中排除/删除值

我有一个用于用户管理页面的枚举列表.我正在使用MVC 5.1中的新HtmlHelper,它允许我为Enum值创建一个下拉列表.我现在需要从列表中删除Pending值,此值只能以编程方式设置,并且永远不应由用户设置.

枚举:

public enum UserStatus
{
    Pending = 0,
    Limited = 1,
    Active = 2
}
Run Code Online (Sandbox Code Playgroud)

视图:

@Html.EnumDropDownListFor(model => model.Status)
Run Code Online (Sandbox Code Playgroud)

无论如何,要么覆盖当前控件,要么编写一个允许我指定枚举的自定义HtmlHelper,或者从结果列表中排除枚举?或者你会建议我用jQuery做客户端的东西,一旦生成后从下拉列表中删除值?

谢谢!

c# asp.net-mvc enums html-helper razor

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

ASP.NET MVC:AJAX调用的控制器是应该返回JSON还是渲染html?

我无法确定AJAX调用的控制器操作是应该返回部分视图还是"原始"JSON.

返回部分视图,使用呈现的HTML使javascript更容易使用返回的HTML更新当前DOM.但是,它确实限制了使用Web服务的javascript客户端可以对返回的HTML执行的操作.

另一方面,让控制器操作返回JSON将需要javascript调用"手动"基于返回的JSON创建标记.

像往常一样,每种方法都有它的好处和缺点.每种方法都有其他优点/缺点吗?

asp.net-mvc json

22
推荐指数
2
解决办法
6097
查看次数

405 WebAPI2上不允许的方法(OWIN)

我正在为我的API设置一个WebAPI端点,但是我无法使用我的PostRegister方法调用AngularJS.

webAPI和Angular位于不同的站点上.

在Startup.cs我有:

    public void Configuration(IAppBuilder app)
    {
        ConfigureOAuth(app);

        var config = new HttpConfiguration();

        WebApiConfig.Register(config);
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        app.UseWebApi(config);

    }

    private void ConfigureOAuth(IAppBuilder app)
    {
        var oAuthServerOptions = new OAuthAuthorizationServerOptions
        {
            AllowInsecureHttp = true,
            TokenEndpointPath = new PathString(Paths.TokenPath),
            AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30),
            Provider = Kernel.Get<IOAuthAuthorizationServerProvider>()
        };
        app.UseOAuthAuthorizationServer(oAuthServerOptions); 

        OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
        app.UseOAuthBearerAuthentication(OAuthBearerOptions);
    }
Run Code Online (Sandbox Code Playgroud)

然后在控制器上,我的方法被设置为允许匿名:

    [AllowAnonymous]
    public bool PostRegister(UserSignupForm form)
    {
        ...
    }
Run Code Online (Sandbox Code Playgroud)

我还更新了web.config:

 <system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer> …
Run Code Online (Sandbox Code Playgroud)

cors asp.net-web-api angularjs owin asp.net-web-api2

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

检测到装配更改.重启主机

我的Azure功能运行正常,突然间我收到了几个"检测到程序集更改.重新启动主机..."消息阻止我的功能完成.

日志

我没有部署新代码,因此不确定是什么触发了Assembly Change事件.我正在运行最新版本的运行时,并且已经恢复到版本1.0.10947,认为可能是基础运行时已更新,但我仍然在日志中显示该行.

立即更新 @Alexey帮助我找出导致检测到装配更改的原因.我想问一下是否有人可以告诉我为什么要检测到装配更改,即使很难,我也没有更改/重新部署我的应用程序.

azure scriptcs azure-functions

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

Azure上的MVC网站在每个页面的第一次加载时超级慢

我正在开发一个MVC网站上的性能问题.当站点在Azure中托管时,在第一次加载页面时,视图的呈现阶段会花费大量时间,我们每页说的是15-60秒.之后对同一页面的后续加载非常快速,正如人们所期望的那样.这是来自Glimpse的第一次点击页面的痕迹:

在此输入图像描述

从图中可以看出,Razor渲染似乎是主要的攻击者.我已经阅读了很多关于Razor视图预编译的内容,我已经尝试过实现它,但它对我们没有任何影响.我也正在使用Azure Web App开发人员,他们指责Glimpse是一个问题,但我已经尝试过没有安装Glimpse的应用程序,它仍然像往常一样慢.

我变得非常困在这里......任何想法?

asp.net-mvc performance azure razor asp.net-mvc-5

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

jQuery只返回第一项

出于某种奇怪的原因,每当我有一个选择器并期望获得多个项目时,jQuery只返回第一个项目,而不是整个集合.

这是我的HTML:

<a id="reply-424880" class="reply" href="#" rel="nofollow">Reply</a>
<a id="reply-424885" class="reply" href="#" rel="nofollow">Reply</a>
Run Code Online (Sandbox Code Playgroud)

而选择器:

$('.reply').unbind('click').click(function(event) {
 ...
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用FireBug进行调试,但仍然得到相同的结果.使用我的工作,我可以让它工作:

$('a').each(function (index, element) {
            if ($(element).attr('class') == 'reply') {
                $(this).unbind('click').click(function(event) {
                     ...
                });
             }
});
Run Code Online (Sandbox Code Playgroud)

我想使用内置功能而不是我的工作.知道为什么只返回第一个元素?

jquery jquery-selectors

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

管理我的应用程序的免费版本

我的付费应用程序已在WP7市场上发布.现在我想创建一个免费版本的应用程序.

我想我会有一个常数IsFreeVersion = true;,然后基于该禁用一些功能.

为此设置项目的最佳方法是什么?我绝对不希望有两个版本的代码.那么我应该创建一个新项目并链接文件吗?

另外,如何处理不同的应用程序图标?最后,我不需要为我的应用程序ID单独的GUID吗?

marketplace windows-phone-7

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

部分工作两次(ThreadPool.QueueUserWorkItem)

我创建了一个时事通讯系统,允许我指定哪些成员应该收到时事通讯.然后,我遍历符合条件的成员列表,并为每个成员生成个性化消息并异步发送电子邮件.

当我发送电子邮件时,我正在使用ThreadPool.QueueUserWorkItem.

出于某种原因,一部分成员正在收到两次电子邮件.在我的最后一批中,我只发送给712名成员,但总共发送了798封邮件.

我正在记录发出的消息,我能够告诉前86位成员收到消息两次.这是日志(按消息发送的顺序)

No.  Member   Date
1.   163992   3/8/2012 12:28:13 PM
2.   163993   3/8/2012 12:28:13 PM
...
85.   164469   3/8/2012 12:28:37 PM
86.   163992   3/8/2012 12:28:44 PM
87.   163993   3/8/2012 12:28:44 PM
...
798.   167691   3/8/2012 12:32:36 PM
Run Code Online (Sandbox Code Playgroud)

但是,每个成员都应该收到一次新闻通讯,因为您可以看到成员163992收到消息#1和#86; 成员163993收到消息#2和#87; 等等.

另一件需要注意的是,在发送消息#85和#86之间有7秒的延迟.

我已经多次查看过该代码并排除了几乎所有的代码都是它的原因,除了可能的ThreadPool.QueueUserWorkItem.

这是我第一次使用ThreadPool,所以我对它并不熟悉.是否有可能产生某种导致这种行为的竞争条件?

=== ---代码示例--- ===

    foreach (var recipient in recipientsToEmail)
    {
        _emailSender.SendMemberRegistrationActivationReminder(eventArgs.Newsletter, eventArgs.RecipientNotificationInfo, previewEmail: string.Empty);
    }


    public void SendMemberRegistrationActivationReminder(DomainObjects.Newsletters.Newsletter newsletter, DomainObjects.Members.MemberEmailNotificationInfo recipient, string previewEmail)
    {
//Build message here .....

//Send the message
            this.SendEmailAsync(fromAddress: …
Run Code Online (Sandbox Code Playgroud)

c# asp.net threadpool

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

鼠标悬停在SVG圈子上

我对SVG很新,所以如果这是一个基本问题,请原谅我.

我想在屏幕上绘制圆圈,并在用户将鼠标放在每个圆圈上时做出响应.

据我所知,当在svg上听鼠标事件时,我们实际上是在整个画布上而不是在形状上听鼠标事件.

如果我想处理形状上的事件,我必须使用像D3这样的库.

是否可以侦听鼠标指针经过特定圆圈时触发的mouseOver事件?

javascript svg canvas d3.js

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

删除EnumDropDownListFor框顶部的空白/空条目

我使用我的枚举渲染一个下拉列表框,我只有3个选项,但由于某种原因它显示四个.top和default选项只是空白/空,我希望删除它.我希望top/default值为'Option1'.

枚举:

public enum EventType
{
    [Display(Name = "Option 1")]
    Option1,

    [Display(Name = "Option 2")]
    Option2,

    [Display(Name = "Option 3")]
    Option3
}
Run Code Online (Sandbox Code Playgroud)

视图:

@Html.EnumDropDownListFor(model => model.EventType, null, new { @id = "eventType", @class = "form-control" })
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

c# asp.net-mvc html-helper html.dropdownlistfor razor

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