小编Jam*_*xon的帖子

UrlHelper.Action不会映射到控制器正确的区域

更新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一起使用,所以我不知道是否有可能做我正在尝试的事情.

欢呼任何帮助.

c# asp.net asp.net-mvc-routing asp.net-mvc-2

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

GPU加速动画和模糊内容

问题:为什么我的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)

css animation ri css3

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

动态获取属性值

我有一个具有大量属性的对象.我想通过循环遍历对象的属性集合来获取每个属性的值.

我已经研究过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()方法,因为我只想要我正在调用该方法的属性的值.

感谢您为我澄清这一点的任何帮助.我在这里花了几个小时,只是把头撞在桌子上.

c# reflection properties

7
推荐指数
1
解决办法
8963
查看次数

中继器控制 - 取消特定项目的绑定

在转发器控件中,是否有一种方法可以在呈现页面之前对某些项目进行解除绑定?

目前我们有一组项目被绑定到转发器,如果​​该项目不是当前语言的一部分,我们隐藏该项目.

我希望能够对转发器进行计数并获得有效数字.计数不包括隐藏的项目.

是否有可能在ItemDataBound事件中解除特定项目的约束?

更新

对于我们绑定的集合中的每个项目,我们在期间检查数据库ItemDataBound以获取有关该项目的更多信息,例如语言等.这当前阻止我们在绑定之前过滤绑定数据.

asp.net binding repeater

7
推荐指数
1
解决办法
6362
查看次数

我应该为每个模型创建一个界面吗?

我刚刚开始使用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

7
推荐指数
1
解决办法
246
查看次数

ASP.NET MVC验证属性和Jquery

我在提交时验证的字段上有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)

validation asp.net-mvc jquery

7
推荐指数
1
解决办法
5637
查看次数

等价+ =用于前缀

是否有一些语法糖用于将数据加到字符串的开头,其方式与+ =附加到字符串的方式类似?

c# string

6
推荐指数
4
解决办法
325
查看次数

LINQ从String []附加到StringBuilder

我有一个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)

c# linq lambda stringbuilder

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

jQuery自动完成源属性as function(){}非常慢

我有两个使用相当大的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秒"没有响应".

第二种情况与第一种情况相比有何不同?

(我会在某个时候在这个函数中加入一些过滤逻辑,但是现在我正在测试这个).

jquery jquery-ui autocomplete jquery-ui-autocomplete

6
推荐指数
1
解决办法
3261
查看次数

流畅的接口 - 确保新的实例

我有一个类,它暴露了一个流畅的界面风格,我也想要线程安全.

目前,在类的实例上调用可链接方法会使用操作(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

6
推荐指数
1
解决办法
625
查看次数