问题列表 - 第17273页

ASP.NET MVC:将自定义属性放入选择列表中的选项标记中

我正在使用ASP.NET MVC,并尝试使用HtmlHelper.DropDownListFor方法呈现选择列表,如下所示:

<%= Html.DropDownListFor(x => x.AllTopics, SelectListHelper.GetSelectListItems(Model.AllTopics), "Select a Topic", new { id = "allTopics", @class = "topic-dropdown" })%>
Run Code Online (Sandbox Code Playgroud)

其中SelectListHelper会返回一个IList<SelectListItem>无论从任何收集我们正在传递.这正常工作对简单的事情,但我希望能够到一个title属性添加到每个选项标签(选择列表本身).但DropDownListFor只接受一个IEnumerable<SelectListItem>,而SelectListItem没有任何我可以放在title属性中的地方.

有没有办法做到这一点,没有前面的DropDownListFor方法和手写出选择列表和每个元素?

asp.net asp.net-mvc drop-down-menu

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

C#属性,是否可以在没有定义set(没有后备变量)的情况下定义get?

假设您有一个具有300个属性且没有后备变量的类,每个属性都返回一个十进制/双精度.

例:

public decimal MathValue { get; set; }
Run Code Online (Sandbox Code Playgroud)

现在你决定将这些值中的每一个都舍入.

我正在寻找最简单的重构方法,而不必重写所有这些属性.

这个实际上有效的东西:D:

public decimal MathValue { get {return Math.Round(MathValue);} set; }
Run Code Online (Sandbox Code Playgroud)

c# properties

7
推荐指数
3
解决办法
4175
查看次数

如何使用jquery为HTML画布提供键盘焦点?

我正在使用Javascript,jquery和Canvas标签实现游戏.当canvas标记具有焦点时,如何防止浏览器处理键盘快捷键?我试过了event.stopPropagation(),它没有效果.

我可以拿起键盘事件.但是,当用户按空格键时,网页会在Firefox中向下滚动.箭头键也是如此.

html javascript dom canvas

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

使用return退出循环?

如果我写一个for,do或while循环,是否可以使用return关键字来解决这个问题?

例如:

class BreakTest 
{
public static void Main() 
{
  for (int i = 1; i <= 100; i++) 
  {
     if (i == 5) 
        **return;**
     Console.WriteLine(i);
    }
   }
}
Run Code Online (Sandbox Code Playgroud)

我知道return可以用来退出if语句所以我很好奇,因为我从未尝试过(并且无法访问我的软件来编写代码来测试它).

c#

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

如何在运行时以编程方式转换对象?

假设我有一个自定义控件,如:

MyControl : Control
Run Code Online (Sandbox Code Playgroud)

如果我有这样的代码:

List<Control> list = new ...
list.Add (myControl);

RolloutAnimation anim = list[0];
Run Code Online (Sandbox Code Playgroud)

我知道我可以在编译时完成它,但我想在运行时执行它并访问MyControl特定的功能.

.net c# casting winforms

0
推荐指数
1
解决办法
1169
查看次数

为什么使用"新的NetworkCredential(用户名,密码)"不适用于我的网站的基本身份验证(来自WinForms C#应用程序)?

我有一个使用基本身份验证(用户名/密码)的网站.

为什么以下代码不起作用?当我运行它时,Web应用程序将我带到登录控制器,而我期望它应该已经过身份验证,因为我正在填充凭据.换句话说,我试图确认如何在.NET中确认我的winforms HttpWebRequest,以便它将自动化身份验证过程.我假设NetworkCredential是应该这样做的.net类?或者在.NET中,您是否期望有一些手动两步过程需要自己实现?

这是代码:

    // Create a new webrequest to the mentioned URL.            
    var uri = new Uri("http://10.1.1.102:3000/download/sunset");
    var myWebRequest = (HttpWebRequest)WebRequest.Create(uri);            
    myWebRequest.PreAuthenticate=true;            
    var networkCredential=new NetworkCredential("test", "asdfasdf");                        
    myWebRequest.Credentials=networkCredential;
    var myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();

    Console.Out.WriteLine("STATUS = " + myWebResponse.StatusCode);

    var stream = myWebResponse.GetResponseStream();
    var reader = new StreamReader(stream);
    string text_read = reader.ReadToEnd();
    Console.WriteLine(text_read);
    DisplayHtml(text_read);
    reader.Close();
    stream.Close();
    myWebResponse.Close();
Run Code Online (Sandbox Code Playgroud)

谢谢

.net c# authentication httpwebrequest basic-authentication

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

在ECMAScript中检查空字符串时,为什么要在string ==""上使用string.length == 0?

我当前项目中的大多数开发人员使用(对我而言)奇怪的方法来检查ECMAScript中的空字符串:

if (theString.length == 0)
    // string is empty
Run Code Online (Sandbox Code Playgroud)

我通常会这样写:

if (theString == "")
    // string is empty
Run Code Online (Sandbox Code Playgroud)

后一版本对我来说似乎更具可读性和自然性.

我没有问过任何人似乎能够解释版本1的优点.我想在过去的某个时候有人告诉大家这是做到这一点的方法,但现在那个人离开了,没有人记得为什么要这样做办法.

我想知道为什么我应该在第二个版本中选择第一个版本?重要的是,一个版本比另一个版本好吗?由于某种原因,一个版本更安全还是更快?

(我们实际上是在符合ECMAScript Edition 4的Siebel eScript中执行此操作)

谢谢.

javascript string-comparison ecmascript-4

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

减少循环的最佳习语

减少循环的最佳/首选习惯是什么?为什么?

for(int idx=(len-1); idx>=0; idx--) {...}
Run Code Online (Sandbox Code Playgroud)

要么

for(int idx=(len-1); idx>-1; idx--) {...}
Run Code Online (Sandbox Code Playgroud)

或(基于sylvarking的答案,但用于约束索引范围)

for(int idx=len; idx-->0; ) {...}
Run Code Online (Sandbox Code Playgroud)

是否有一个或多个人更有可能绊倒另一个开发者?

java

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

我应该使用新的Type()还是只使用Type()来调用构造函数

两种语法都是等价的(至少我认为它们是相同的).

let o1 = new Object()
Run Code Online (Sandbox Code Playgroud)

要么

let o2 = Object()
Run Code Online (Sandbox Code Playgroud)

你经常使用哪种方式?可读性问题怎么样?

f# constructor coding-style

14
推荐指数
3
解决办法
542
查看次数

ASP.NET MVC ModelBinding Inherited Classes

我有一个关于ASP.NET MVC中的ModelBinding的问题(我正在使用MVC 2预览2)与继承相关.

假设我有以下接口/类:

interface IBase
class Base : IBase
interface IChild
class Child: Base, IChild
Run Code Online (Sandbox Code Playgroud)

我有一个自定义模型绑定器BaseModelBinder.

以下工作正常:

ModelBinders.Binders[typeof(Child)] = new BaseModelBinder();
ModelBinders.Binders[typeof(IChild)] = new BaseModelBinder();
Run Code Online (Sandbox Code Playgroud)

以下不起作用(绑定类型为Child的on对象):

ModelBinders.Binders[typeof(Base)] = new BaseModelBinder();
ModelBinders.Binders[typeof(IBase)] = new BaseModelBinder();
Run Code Online (Sandbox Code Playgroud)

有没有办法让基类的模型绑定器适用于所有继承的类?我真的不想为每个可能的继承类手动输入内容.

此外,如果可能,是否有办法覆盖特定继承类的模型绑定器?说我有这个工作,但我需要一个特定的Child2模型绑定器.

提前致谢.

asp.net-mvc inheritance modelbinders

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