问题列表 - 第26775页

有条件地将htmlAttributes添加到ASP.NET MVC Html.ActionLink

我想知道是否可以在对方法的调用中有条件地添加参数.

例如,我在我的Site.Master中渲染一堆链接(总共六个)用于导航:

<%= Html.ActionLink("About", "About", "Pages") %> | 
<%= Html.ActionLink("Contact", "Contact", "Pages") %>
<%-- etc, etc. --%>
Run Code Online (Sandbox Code Playgroud)

如果它在该页面上,我想为链接包含一个"选定"的CSS类.所以在我的控制器中我回来了:

ViewData.Add("CurrentPage", "About");
return View();
Run Code Online (Sandbox Code Playgroud)

然后在视图中我有一个htmlAttributes字典:

<% Dictionary<string,object> htmlAttributes = new Dictionary<string,object>();
   htmlAttributes.Add("class","selected");%>
Run Code Online (Sandbox Code Playgroud)

现在我唯一的问题是如何为正确的ActionLink包含htmlAttributes.我可以通过这种方式为每个链接做到这一点:

<% htmlAttributes.Clear();
   if (ViewData["CurrentPage"] == "Contact") htmlAttributes.Add("class","selected");%>
<%= Html.ActionLink("Contact", "Contact", "Pages", htmlAttributes) %>
Run Code Online (Sandbox Code Playgroud)

但这似乎有点重复.有没有办法做这样的psuedo代码:

<%= Html.ActionLink("Contact", "Contact", "Pages", if(ViewData["CurrentPage"] == "Contact") { htmlAttributes }) %>
Run Code Online (Sandbox Code Playgroud)

这显然不是有效的语法,但有没有正确的方法呢?我对提供这些链接的任何完全不同的建议持开放态度.我想继续使用像ActionLink这样的东西,利用我的路线,而不是硬编码标签.

c# parameters asp.net-mvc conditional actionlink

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

Javascript函数作为另一个函数的参数?

我这些天学习了很多javascript,其中一个我不太了解的事情就是将函数作为参数传递给其他函数.我得到了做这些事情的概念,但我自己无法想出任何理想的情况.

我的问题是:

你想什么时候让你的javascript函数作为参数使用另一个函数?为什么不直接为该函数的返回值赋一个变量,并将该变量传递给函数,如下所示:

// Why not do this
var foo = doStuff(params);
callerFunction(foo);

//instead of this
callerFunction(doStuff);
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么我会选择做第二个例子中的事情.

你为什么要这样做?有哪些用例?

谢谢!!

javascript

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

如何使用Perl的Net :: FTP直接读取文件的内容?

我想将文件从一个主机获取到另一个主机.我们可以使用NET :: FTP模块获取文件.在该模块中,我们可以使用该get方法来获取文件.但我想要文件内容而不是文件.我知道使用该read方法我们可以读取文件内容.但是如何调用该read函数以及如何获取文件内容?

perl

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

tcpdf编辑页脚

如何使用tcpdf编辑页脚?我想在页脚添加当前日期和时间.请帮忙.

edit footer tcpdf

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

更新事物列表而不会访问每个条目

我在数据库中有一个用户应该能够订购的列表.

itemname|  order value (int)
--------+---------------------         
salad   |  1
mango   |  2
orange  |  3
apples  |  4
Run Code Online (Sandbox Code Playgroud)

从数据库加载,我只是order by order_value.

通过拖放,他应该能够移动apples,使其出现在列表的顶部..

itemname|  order value (int)
--------+---------------------         
apples  |  4
salad   |  1
mango   |  2
orange  |  3
Run Code Online (Sandbox Code Playgroud)

好.所以现在在内部我必须更新每个列表项目!如果列表有20或100个项目,那么对于简单的拖动操作来说,这是很多更新.

itemname|  order value (int)
--------+---------------------         
apples  |  1
salad   |  2
mango   |  3
orange  |  4
Run Code Online (Sandbox Code Playgroud)

我宁愿只做一次更新.我想到的一种方式是"内部订单"是否为double值.

itemname|  order value (double)
--------+---------------------         
salad   |  1.0
mango   |  2.0
orange  |  3.0
apples  | …
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-update

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

获取没有显式特征的整数模板参数的有符号/无符号变体

我想定义一个模板类,其模板参数将始终是一个整数类型.该类将包含两个成员,一个是类型,另一个是类型T的无符号变体T- 即if T == int,then T_Unsigned == unsigned int.我的第一直觉是这样做:

template <typename T> class Range {
    typedef unsigned T T_Unsigned; // does not compile
public:
    Range(T min, T_Unsigned range);
private:
    T m_min;
    T_Unsigned m_range;
};
Run Code Online (Sandbox Code Playgroud)

但它不起作用.然后我考虑使用部分模板专业化,如下所示:

template <typename T> struct UnsignedType {}; // deliberately empty
template <> struct UnsignedType<int> {
    typedef unsigned int Type;
};

template <typename T> class Range {
    typedef UnsignedType<T>::Type T_Unsigned;
    /* ... */
};
Run Code Online (Sandbox Code Playgroud)

只要您UnsignedType每个整数类型进行部分专门化,这都可以.这是一些额外的复制粘贴工作(削减明智地使用宏),但可以使用. …

c++ unsigned templates partial-specialization traits

19
推荐指数
1
解决办法
2616
查看次数

UIScrollView不滚动

我有一个UIScrollView包含许多UIImageViews,UILabels等...标签比它长得多UIScrollView,但是当我运行应用程序时,我无法点击并向下滚动...

为什么会这样?

谢谢

iphone uiscrollview ipad ios

125
推荐指数
9
解决办法
12万
查看次数

使用sscanf将字符串转换为GUID

我正在尝试使用sscanf将字符串转换为GUID:

GUID guid;
sscanf( "11111111-2222-3333-4455-667788995511", "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
        &guid.Data1, &guid.Data2, &guid.Data3,
        &guid.Data4[0], &guid.Data4[1], &guid.Data4[2],
        &guid.Data4[3], &guid.Data4[4], &guid.Data4[5],
        &guid.Data4[6], &guid.Data4[7]);
Run Code Online (Sandbox Code Playgroud)

但是,在运行时,它会失败并以"错误:命令失败"退出.为什么?怎么解决?

我不想用/ clr编译所以不能使用System.

c c++ guid scanf

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

如何限制在我的通用方法中仅接受一种类型?

我有一个通用函数foo,它接受任何类型并打印出来.

public static <T> T foo(T... arg) {
    List<T> foo = Arrays.asList(arg);
    for (T t : foo) {
      System.out.println(t);
    }
    return null;
  }
Run Code Online (Sandbox Code Playgroud)

如何确保收到的参数只有一种类型.例如,{1,'a',3}应该无效.它应该是所有数字或所有字符.我想接受所有整数或所有字符.

java generics types

7
推荐指数
2
解决办法
6100
查看次数

在F#中使用泛型来创建EnumArray类型

我创建了一个F#类来表示一个数组,该数组为特定枚举的每个值分配一个元素.我正在使用一个显式构造函数,它创建一个从枚举值到数组索引的字典,以及一个Item属性,以便您可以编写如下表达式:

let my_array = new EnumArray<EnumType, int>
my_array.[EnumType.enum_value] <- 5
Run Code Online (Sandbox Code Playgroud)

但是,我在下面标有'// FS0670'的行中遇到以下模糊的编译错误.

error FS0670: This code is not sufficiently generic.
The type variable  ^e when  ^e : enum<int> and  ^e : equality
and  ^e : (static member op_Explicit :  ^e -> int)
could not be generalized because it would escape its scope.
Run Code Online (Sandbox Code Playgroud)

我不知所措 - 任何人都可以解释这个错误吗?

type EnumArray< 'e, 'v when 'e : enum<int>  //'
                       and 'e : equality
                       and 'e : (static member op_Explicit :  'e -> int) > = …
Run Code Online (Sandbox Code Playgroud)

generics enums f# compiler-errors

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