我有一个选择控件,在一个javascript变量中我有一个文本字符串.
使用jQuery我想将select控件的selected元素设置为具有我所拥有的文本描述的项目(而不是我没有的值).
我知道按值设置它是非常微不足道的.例如
$("#my-select").val(myVal);
Run Code Online (Sandbox Code Playgroud)
但是通过文字描述我有点难过.我想必须有一种从文本描述中获取价值的方法,但是我的大脑在星期五下午也可以解决它.
我想输出两个不同的视图(一个作为将作为电子邮件发送的字符串),另一个显示给用户的页面.
这是否可以在ASP.NET MVC beta中使用?
我尝试过多个例子:
1. ASP.NET MVC Beta中的RenderPartial到String
如果我使用此示例,则会收到"在HTTP标头发送后无法重定向".
如果我使用它,我似乎无法执行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) 我正在寻找一种方法来停止underscore.js _.each()
方法的迭代,但无法找到解决方案..each()
如果你这样做,jQuery 可能会破坏return false
.
有没有办法停止下划线每个()?
_([1,2,3]).each(function(v){
if (v==2) return /*what?*/;
})
Run Code Online (Sandbox Code Playgroud) 我的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,然后在每个区域有一个?如果是这样,我是否需要对我的配置文件进行更改(假设我这样做)以使其工作?
任何帮助将非常感激!
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只能在运行时确定.
有没有解决的办法?
有没有人知道如何使用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)
提前致谢.
我的问题类似于这个 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
阿丽维亚的答案更为简洁.我已经改变了接受的答案.
有谁知道如何阻止页面重新加载或导航?
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不起作用,它仍然允许用户导航(警报仅用于调试)
有任何想法吗?
为什么使用"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) jquery ×4
javascript ×3
asp.net-mvc ×2
.net ×1
asp.net ×1
c# ×1
date ×1
events ×1
linq ×1
rendering ×1
sql-server ×1
string ×1
toggle ×1
vb.net ×1