小编Man*_*eld的帖子

匿名类型列表或对象列表

我有以下问题(简化).

我有一个狗列表:

public List<Dog> dogs { get; set; }
Run Code Online (Sandbox Code Playgroud)

我目前通过在视图中转换它作为json对象访问此列表:

@(new HtmlString(@Json.Encode(@ViewBag.dogs)))
Run Code Online (Sandbox Code Playgroud)

然后我使用javascript迭代这个json对象并将其显示在页面上.

我想将汽车添加到此列表中.

但是,由于列表是强类型的,因为dogs我首先想到的列表是创建列表作为一件事dogscars具有共同点,它们都是对象.

当我试图将我的狗列表更改为列表时objects,我收到以下错误

Cannot implicitly convert type 'System.Collections.Generic.List<object>' to System.Collections.Generic.List<dog>
Run Code Online (Sandbox Code Playgroud)

对此进行了研究,发现这个问题对我没什么帮助,只是告诉我,我不能列出狗和车.然而,就我的目的而言,这并不合适.我需要我的列表包含狗和汽车,以便我可以在我的应用程序中访问它们.

我预计建议的一个解决方案是我有两个单独的列表,并且发出两个单独的ajax请求.但是,我需要按照特定的顺序混合汽车和狗(基于它们基本上创建的时间),因此解决方案并不理想.

简而言之,我想知道实现这一目标的最佳方法是什么.也许我完全走错了方向,所以如果有意义,我不反对做一些完全不同的事情.

一如既往地感谢您的帮助!

编辑:我已经尝试了演员,这是有效的.但是,我需要访问dog的属性(让我们称之为"fur")并且我似乎无法做到这一点(我是否需要再次投射?)

'object' does not contain a definition for 'fur'
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc json list object

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

如何检测浏览器是否支持某种语言?

我正在建立一个多语种网站.是否可以使用PHP或Javascript检查用户机器上是否安装/支持特定语言?如果不支持/安装语言,我想检测到这一点并向用户显示一条消息.

谢谢,马克.

javascript php multilingual

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

错字3:如果没有可用的翻译,则不显示语言链接

我有这个typoscript语言菜单:

tmpl.NavLang  = HMENU
tmpl.NavLang {
  special=language
  special.value = 0,1,2,3

  1 = TMENU
  1 {
    NO = 1
    NO {
      stdWrap.htmlSpecialChars = 1
      stdWrap.override = DE || EN || FR || PL
      ATagTitle = Deutsch || English || Francais || Polski
    }
    ACT < .NO
    ACT.doNotLinkIt = 1
    ACT.linkWrap = <span>|</span>
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我在英文页面上,例如,没有法语翻译,我想隐藏菜单中的FR.这可能吗?

谢谢!

menu typo3 typoscript

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

按值传递struct

鉴于以下代码,我很想知道如何避免以下异常

System.InvalidOperationException was unhandled
Message=Collection was modified; enumeration operation may not execute.
Source=mscorlib
StackTrace:
   at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
   at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   at System.Collections.Generic.List`1.Enumerator.MoveNext()
   at PBV.Program.Main(String[] args) in C:\Documents and Settings\tmohojft\Local Settings\Application Data\Temporary Projects\PBV\Program.cs:line 39
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
InnerException: 
Run Code Online (Sandbox Code Playgroud)

码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PBV
{ …
Run Code Online (Sandbox Code Playgroud)

.net c# structure pass-by-reference pass-by-value

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

变量是 Enum 的实例

我有以下 JavaScript 代码:

function testClass() {
    this.SaveValue = function (value) {
        var isInstance = value instanceof TestEnum;

        if (!isInstance) {
            return;
        }
     }
}

TestEnum = {
    VALUE_0: 0,
    VALUE_1: 1,
    VALUE_2: 2   
}
Run Code Online (Sandbox Code Playgroud)

我通过以下方式创建该对象的实例:

$(function () {
    var a = new testClass();
    a.SaveValue(TestEnum.VALUE_1);    
});
Run Code Online (Sandbox Code Playgroud)

我想做的就是测试传递给函数的值SaveValue实际上是TestEnum. 但是,当我运行此代码时,出现以下错误:Uncaught TypeError: Expecting a function in instanceof check, but got 1

我以正确的方式处理这件事吗?我尝试了 typeof 但它只返回,number这对我来说不是特别有用。

javascript instanceof

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

避免程序中的SQL语句是个好主意吗?

我最近遇到了一个程序,它是在一个表中使用sql语句开发的,每个语句都有一个代码.而不是在程序本身中具有特定的sql语句.

所以,而不是像这样的代码:

string query = "SELECT id, name from [Users]";
cmd.ExecuteQuery(query);
Run Code Online (Sandbox Code Playgroud)

他们使用这样的代码:(简化)

string firstQuery = "SELECT queryText from [Queries] where queryCode = 'SELECT_ALL_USERS'";
string userQuery = cmd.ExecuteQuery(firstQuery);//pretend this directly returns the result of the first query

cmd.ExecuteQuery(userQuery);
Run Code Online (Sandbox Code Playgroud)

据我所知,这背后的逻辑是它使程序更容易维护,因为开发人员可以自由地更改"用户sql"而无需实际更改程序.

然而,这让我觉得有点适得其反.这种代码会被认为是个好主意吗?

编辑:我不是在寻找像"使用ORM"这样的建议.假设sql查询是唯一的选择.

sql

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

静态方法线程安全

假设用户登录我的mvc应用程序时调用以下方法:

public static bool IsValidBrowser()
{
    var browser = HttpContext.Current.Request.Browser;

    if (browser.Browser == "IE") {
        if (browser.MajorVersion < 10) {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这个方法线程安全吗?显然我在这里没有修改任何东西,但是HttpContext.Current这个方法中间的变化可能有可能吗?

以这种方式编写代码会使其线程安全吗?

public ActionResult Login () 
{
    bool validBrowser = IsValidBrowser(HttpContext.Current.Request.Browser);
}

public static bool IsValidBrowser(HttpBrowserCapabilities browser)
{
    if (browser.Browser == "IE") {
        if (browser.MajorVersion < 10) {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc static thread-safety

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

使用CodeIgniter动态设置语言

我想将默认应用程序语言设置为访问者国家/地区语言.我有一个API来获取IP前缀idiom并根据此信息,我想设置语言.

做这个的最好方式是什么?我想创建一个cookie来存储语言标识符,但我必须在哪里设置它?

谢谢.

php codeigniter

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

是否可以通过ftp获取文件版本?

我的问题很简单.我在ftp服务器上有一个exe文件,版本为1.0.0.0.我想下载它,但仅限于版本大于某个预设值.(所有这些都在C#桌面应用程序中).

我在网上看到,如果不首先下载文件,就无法通过FTP告诉文件的版本.它是否正确?(我宁愿不这样做,因为文件相当大,不需要在大多数时间下载).

如果是,我看到的推荐解决方案是在FTP目录中创建一个包含目标exe文件版本的文本文件.显然它不会很大,所以可以快速下载.如果我不能直接获取exe版本,这是最好的解决方案吗?

谢谢您的帮助!

c# versioning ftp

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

为什么十进制和十六进制之间的转换抛出了一个形式感觉?

当我编译并运行以下代码时,它会抛出以下异常:

未处理的异常:System.FormatException:指定的格式"X"在System.NumberFormatter.NumberToString(System.String format,System.Globalization.NumberFormatInfo nfi)[0x00000]中无效,其中:0处于System.NumberFormatter.NumberToString(System.String)格式,十进制值,IFormatProvider fp)[0x00000] in:0表示System.Decimal.ToString(System.String格式,IFormatProvider提供程序)[0x00000] in:0 at System.Decimal.ToString(System.String format)[0x00000] in:0在Program.Main()

using System;

class Program
{
    static void Main()
    {
        decimal result = 1454787509433225637;

                    //both these lines throw a formatexception
        Console.WriteLine(result.ToString("X"));
                    Console.WriteLine(string.Format("{0:x}", result));
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?根据/sf/answers/5195641/,这应该编译好(并输出"14307188337151A5").

.net c# hex decimal .net-4.5

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