小编Dan*_*son的帖子

jQuery - 通过文本描述设置选择控件的选定值

我有一个选择控件,在一个javascript变量中我有一个文本字符串.

使用jQuery我想将select控件的selected元素设置为具有我所拥有的文本描述的项目(而不是我没有的值).

我知道按值设置它是非常微不足道的.例如

$("#my-select").val(myVal);
Run Code Online (Sandbox Code Playgroud)

但是通过文字描述我有点难过.我想必须有一种从文本描述中获取价值的方法,但是我的大脑在星期五下午也可以解决它.

javascript jquery

526
推荐指数
11
解决办法
108万
查看次数

如何将ASP.NET MVC视图呈现为字符串?

我想输出两个不同的视图(一个作为将作为电子邮件发送的字符串),另一个显示给用户的页面.

这是否可以在ASP.NET MVC beta中使用?

我尝试过多个例子:

1. ASP.NET MVC Beta中的RenderPartial到String

如果我使用此示例,则会收到"在HTTP标头发送后无法重定向".

2. MVC框架:捕获视图的输出

如果我使用它,我似乎无法执行redirectToAction,因为它尝试渲染可能不存在的视图.如果我确实返回了视图,那么它完全搞砸了,看起来根本不正确.

有没有人对我遇到的这些问题有任何想法/解决方案,或者对更好的问题有任何建议?

非常感谢!

以下是一个例子.我要做的是创建GetViewForEmail方法:

public ActionResult OrderResult(string ref)
{
    //Get the order
    Order order = OrderService.GetOrder(ref);

    //The email helper would do the meat and veg by getting the view as a string
    //Pass the control name (OrderResultEmail) and the model (order)
    string emailView = GetViewForEmail("OrderResultEmail", order);

    //Email the order out
    EmailHelper(order, emailView);
    return View("OrderResult", order);
}
Run Code Online (Sandbox Code Playgroud)

Tim Scott接受的答案(由我改变并格式化):

public virtual string RenderViewToString(
    ControllerContext controllerContext,
    string viewPath, …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc rendering

473
推荐指数
9
解决办法
29万
查看次数

如何在underscore.js中打破_.each函数

我正在寻找一种方法来停止underscore.js _.each()方法的迭代,但无法找到解决方案..each()如果你这样做,jQuery 可能会破坏return false.

有没有办法停止下划线每个()?

_([1,2,3]).each(function(v){
    if (v==2) return /*what?*/;
})
Run Code Online (Sandbox Code Playgroud)

javascript jquery underscore.js

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

在我的项目中遇到多个同名控制器的问题

我的ASP.NET MVC 3项目遇到以下错误:

找到了多个匹配名为"Home"的控制器的类型.如果为此请求提供服务的路由('Home/{action}/{id}')未指定名称空间来搜索与请求匹配的控制器,则会发生这种情况.如果是这种情况,请通过调用带有'namespaces'参数的'MapRoute'方法的重载来注册此路由.

对'Home'的请求找到了以下匹配的控制器:MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController

我的默认控制器文件夹中有一个HomeController,类名为MyCompany.MyProject.WebMvc.Controllers.HomeController.

我的global.asax中的RegisterRoutes方法如下所示:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    }
Run Code Online (Sandbox Code Playgroud)

然后我有一个名为Company的区域,在该区域的默认控制器文件夹中有一个HomeController,类名为MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController.

CompanyAreaRegistration文件中的RegisterArea方法如下所示:

   public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Company_default",
            "Company/{controller}/{action}/{id}",
            new { area = "Company", action = "Index", id = UrlParameter.Optional }
        );
    }
Run Code Online (Sandbox Code Playgroud)

这就是我在本文开头突出显示的错误.我正在努力拼凑其他各种帖子的解决方案,没有运气.

是否有可能在默认控制器文件夹中有一个HomeController,然后在每个区域有一个?如果是这样,我是否需要对我的配置文件进行更改(假设我这样做)以使其工作?

任何帮助将非常感激!

asp.net-mvc asp.net-mvc-areas asp.net-mvc-3

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

如何在通用扩展方法中使用字符串列名在IQueryable上应用OrderBy?

public static IQueryable<TResult> ApplySortFilter<T, TResult>(this IQueryable<T> query, string columnName)
  where T : EntityObject
{
  var param = Expression.Parameter(typeof(T), "o");
  var body = Expression.PropertyOrField(param,columnName);

  var sortExpression = Expression.Lambda(body, param);
  return query.OrderBy(sortExpression);
}
Run Code Online (Sandbox Code Playgroud)

因为OrderBy的类型不是从sortExpression中推断出来的,所以我需要在运行时指定类似的东西:

var sortExpression = Expression.Lambda<T, TSortColumn>(body, param);
Run Code Online (Sandbox Code Playgroud)

要么

return query.OrderBy<T, TSortColumn>(sortExpression);
Run Code Online (Sandbox Code Playgroud)

我不认为这是可能的,因为TSortColumn只能在运行时确定.

有没有解决的办法?

.net c# linq entity-framework expression-trees

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

jQuery切换文本?

有没有人知道如何使用jQuery切换文本锚标记的html文本.我想要一个锚点,当点击时,文本在"显示背景"和"显示文本"之间交替显示,以及淡入和淡出另一个div.这是我最好的猜测:

$(function() {
    $("#show-background").click(function () {
        $("#content-area").animate({opacity: 'toggle'}, 'slow'); 
    });

    $("#show-background").toggle(function (){
        $(this).text("Show Background")
        .stop();
    }, function(){
        $(this).text("Show Text")
        .stop();
    });
});
Run Code Online (Sandbox Code Playgroud)

提前致谢.

jquery toggle

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

使用函数获取两个日期之间的日期列表

我的问题类似于这个 MySQL问题,但是用于SQL Server:

是否有函数或查询将返回两个日期之间的天数列表?例如,假设有一个名为ExplodeDates的函数:

SELECT ExplodeDates('2010-01-01', '2010-01-13');
Run Code Online (Sandbox Code Playgroud)

这将返回一个包含以下值的列表:

2010-01-01
2010-01-02
2010-01-03
2010-01-04
2010-01-05
2010-01-06
2010-01-07
2010-01-08
2010-01-09
2010-01-10
2010-01-11
2010-01-12
2010-01-13
Run Code Online (Sandbox Code Playgroud)

我认为日历/数字表可能能够帮助我.


更新

我决定查看提供的三个代码答案,执行结果 - 占总批次的百分比 - 是:

越低越好

我已经接受了Rob Farley的答案,因为它是最快的,尽管数字表解决方案(KM和StingyJack在他们的答案中使用)都是我的最爱.Rob Farley的速度提高了三分之二.

更新2

阿丽维亚的答案更为简洁.我已经改变了接受的答案.

sql-server date

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

如何阻止页面在JS中卸载(导航)?

有谁知道如何阻止页面重新加载或导航?

jQuery(function($) {

    /* global on unload notification */
    warning = true;

    if(warning) {
        $(window).bind("unload", function() { 
            if (confirm("Do you want to leave this page") == true) {
                //they pressed OK
                alert('ok');
            } else {
                // they pressed Cancel
                alert('cancel');
                return false;
            }
        });
    }
});

我目前正在开发电子商务网站,显示您未来订单的页面可以使用+/-按钮更改订购商品的数量.以这种方式改变数量实际上不会改变订单本身,他们必须按下确认,因此提交一个积极的行动来改变订单.

但是,如果他们更改了数量并离开了页面,我想警告他们他们这样做是为了防止这是一次意外,因为如果他们离开或刷新页面,更改的数量将会丢失.

在上面的代码中,我使用的是一个全局变量,默认情况下为false(仅适用于测试),当数量更改时,我将更新此变量为true,当他们确认更改时,我将其设置为false .

如果警告为真并且页面已卸载,我会向他们提供一个确认框,如果他们拒绝他们想留在这个页面我需要阻止它卸载.return false不起作用,它仍然允许用户导航(警报仅用于调试)

有任何想法吗?

javascript jquery events

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

"MapHttpRoute"和"MapRoute"之间的区别?

为什么使用"MapRoute"进行"默认"路由,而使用"MapHttpRoute"进行"DefaultApi"路由?

routes.MapHttpRoute(
  name: "DefaultApi",
  routeTemplate: "api/{controller}/{action}"
);

routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc-routing asp.net-web-api

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

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