更新2
好的 - 所以看起来我的问题再次稍微改变:-)
我现在意识到UrlHelper.Action似乎没有正确解析任何区域中的URL,除非明确指定了区域名称.如果没有指定它似乎返回我们当前所在的任何区域名称,这使得它看起来像是从站点的一个部分起作用,但是然后另一个区域中的相同链接解析为错误的区域名称.
要么我做了一些时髦的事情要么做到这一点,要么我不太了解这个Action方法是如何工作的.
更新1
我可以通过以下方式完成这项工作:
return helper.Action("add", "product",new {area = "storemanagement"});
Run Code Online (Sandbox Code Playgroud)
这稍微改变了我的问题.
为什么MVC路由不会消除具有相同名称的控制器的歧义并解析为指定了action方法的控制器?
原创帖子
嘿大家,
我在UrlHelper类上创建了一个辅助方法,并且其中一个路由遇到了一个小问题.
这是有问题的辅助方法的代码:
public static string AddProduct(this UrlHelper helper)
{
return helper.Action("add", "product");
}
Run Code Online (Sandbox Code Playgroud)
我基本上有两个名为"product"的控制器,它们位于站点的不同区域.其中一个用于浏览产品,另一个用于产品管理.只有一个产品控制器包含一个操作方法"添加".
当我输出AddProduct的值
<%: Url.AddProduct() %>
Run Code Online (Sandbox Code Playgroud)
区域名称将解析为我正在浏览的当前区域,而不是包含Add操作方法的产品控制器的正确区域.
我需要在路线中设置一些东西吗?我不确定路由如何与UrlHelper.Action一起使用,所以我不知道是否有可能做我正在尝试的事情.
欢呼任何帮助.
问题:为什么我的CPU 在应用模糊时注册约30%而在没有模糊应用于动画对象时约为6%?
细节:
我在页面上有一组随机生成的项目,这些项目分配了CSS动画(在CSS文件中),并随机生成宽度,高度值,重要的是模糊,内联应用.
CSS文件样式如下:
animation-name: rise;
animation-fill-mode: forwards;
animation-timing-function: linear;
animation-iteration-count: 1;
-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
-webkit-transform: translate3d(0,0,0);
transform: translateZ(0);
Run Code Online (Sandbox Code Playgroud)
宽度,高度和模糊通过style属性内联应用.
<div class="foo" style="width:99px;height:99px;
filter:blur(2px);
-webkit-filter:blur(2px) opacity(0.918866247870028);
-moz-filter:blur(2px) opacity(0.918866247870028);
-o-filter:blur(2px) opacity(0.918866247870028);
-ms-filter:blur(2px) opacity(0.918866247870028);"></div>
Run Code Online (Sandbox Code Playgroud)
启用模糊后,我的CPU使用率约为30%.当我禁用模糊时,CPU使用率下降到约6%.
这里发生了什么事?当没有应用模糊时,chrome是否只能加速GPU?如果是这样,为什么?
更新1:
动画rise如下:
@keyframes rise {
0% {
transform: translateY(0px);
}
100% {
transform: translateY(-1000px);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个具有大量属性的对象.我想通过循环遍历对象的属性集合来获取每个属性的值.
我已经研究过PropertyInfo.GetValue()方法,但是在我的上下文中没有多大意义.
这是我正在尝试做的一个例子(这段代码不起作用):
foreach(var item in dataObjects)
{
foreach(PropertyInfo prop in item.GetType().GetProperties())
{
String value = prop.GetValue().ToString()
}
}
Run Code Online (Sandbox Code Playgroud)
我现在意识到获得一个属性的价值并不容易.我错过了什么?我真的不明白我需要传递给GetValue()方法,因为我只想要我正在调用该方法的属性的值.
感谢您为我澄清这一点的任何帮助.我在这里花了几个小时,只是把头撞在桌子上.
在转发器控件中,是否有一种方法可以在呈现页面之前对某些项目进行解除绑定?
目前我们有一组项目被绑定到转发器,如果该项目不是当前语言的一部分,我们隐藏该项目.
我希望能够对转发器进行计数并获得有效数字.计数不包括隐藏的项目.
是否有可能在ItemDataBound事件中解除特定项目的约束?
更新
对于我们绑定的集合中的每个项目,我们在期间检查数据库ItemDataBound以获取有关该项目的更多信息,例如语言等.这当前阻止我们在绑定之前过滤绑定数据.
我刚刚开始使用Ninject进行依赖注入(DI),并且正在通过我的控制器工作,希望将它们与我的模型分离得更多一些.
目前,在我的控制器内部,我正在创建一个给定模型的实例,例如:
var activitiesModel = new ActivitiesModel();
Run Code Online (Sandbox Code Playgroud)
对于我以这种方式实例化的每个模型,我应该为这些模型提取接口然后使用DI将这些东西绑定在一起吗?
我目前正在执行此操作的示例位于我的ActivitiesController中:
IActivitiesModel _activitiesModel;
public ActivitiesController(IActivitiesModel activitiesModel)
{
_activitiesModel = activitiesModel;
}
Run Code Online (Sandbox Code Playgroud)
这在我的global.asax中绑定在一起:
Bind<IActivitiesModel>().To<ActivitiesModel>();
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?我应该为每个在控制器内实例化的模型创建一个新界面吗?
欢呼任何帮助和推动正确的方向:-)
asp.net-mvc dependency-injection ninject ninject-2 asp.net-mvc-2
我在提交时验证的字段上有mvc属性.虽然这些属性在这些字段上,但是如果单击SaveDraft按钮,我想覆盖它们的验证.现在我尝试使用jquery规则禁用该字段的验证,但mvc属性似乎覆盖了规则.如果单击其他按钮,如何使MVC属性忽略验证?这是一个我想在onClick上做的例子,但它不起作用.
$(".btnsave").click(function () {
$('#WizForm').validate(
{
rules:
{
Title: false,
Description: false //dont validate this field onclick
},
}).Form();
});
Run Code Online (Sandbox Code Playgroud) 我有一个String数组,我想通过LINQ添加到字符串生成器.
我基本上想说的是"对于这个数组中的每个项目,在这个StringBuilder中附加一行".
我可以使用foreach循环很容易地做到这一点但是下面的代码似乎没有做任何事情.我错过了什么?
stringArray.Select(x => stringBuilder.AppendLine(x));
Run Code Online (Sandbox Code Playgroud)
这工作的地方:
foreach(String item in stringArray)
{
stringBuilder.AppendLine(item);
}
Run Code Online (Sandbox Code Playgroud) 我有两个使用相当大的json对象(1.2mb)的测试用例:
source: data
Run Code Online (Sandbox Code Playgroud)
和
source: function (request, response) {
response(data);
}
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,自动完成功能正如我所料.
在第二种情况下,自动完成偶尔会起作用并且非常慢.有时浏览器会在再次释放之前挂起3-4秒"没有响应".
第二种情况与第一种情况相比有何不同?
(我会在某个时候在这个函数中加入一些过滤逻辑,但是现在我正在测试这个).
我有一个类,它暴露了一个流畅的界面风格,我也想要线程安全.
目前,在类的实例上调用可链接方法会使用操作(Func<T>'s)设置各种集合.
当请求结果时,实际工作就会发生.这允许用户以任何顺序链接方法调用,以便:
var result = myFluentThing
.Execute(() => serviceCall.ExecHttp(), 5)
.IfExecFails(() => DoSomeShizzle())
.Result<TheResultType>();
Run Code Online (Sandbox Code Playgroud)
(这里,5是重试失败的服务呼叫的次数.)
显然这不是线程安全的或可重入的.
有哪些常见的设计模式可以解决这个问题?
如果必须首先调用Execute方法,我可以简单地返回一个新的类实例,但每次都可以使用,因为任何方法都可以在链中的任何一点调用,你将如何解决这个问题?
我更感兴趣的是了解解决这个问题的各种方法,而不仅仅是为了"让它正常工作".
我把完整的代码放在GitHub上,任何人都需要更广泛的背景来实现我的目标:https://github.com/JamieDixon/ServiceManager
c# fluent-interface thread-safety reentrancy method-chaining
c# ×5
asp.net ×2
asp.net-mvc ×2
jquery ×2
animation ×1
autocomplete ×1
binding ×1
css ×1
css3 ×1
jquery-ui ×1
lambda ×1
linq ×1
ninject ×1
ninject-2 ×1
properties ×1
reentrancy ×1
reflection ×1
repeater ×1
ri ×1
string ×1
validation ×1