小编Ken*_*ker的帖子

如何动态创建字典和添加键值对?

从帖子:

发送要作为Dictionary <string,string>接收的JSON数组

我正在尝试做同样的事情.唯一的问题是我不知道密钥和值是什么.所以我需要能够动态添加键和值对,我不知道该怎么做.

有谁知道如何创建该对象并动态添加键值对?

我试过了:

var vars = [{key:"key", value:"value"}];
vars[0].key = "newkey";
vars[0].value = "newvalue";
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

javascript dictionary key-value

291
推荐指数
12
解决办法
73万
查看次数

javascript中的#ifndef

我正在寻找一种解决方案,只在Javascript中使用与编译语言中的#ifndef完全相同的函数定义一次函数.我发现了一些应该模仿这个功能的库,但它们没有用.

我正在使用MVC 3 Razor并定义了一些html助手,它们确实将用户控件放在页面上.

每个控件都有一组javascript函数,用于定义该控件的特定功能,因此这里存在一个问题:当在单个页面上多次调用帮助程序时,函数会多次定义.

我希望找到一种方法来保持在帮助程序中定义的少量javascript,而不必将这些小帮助程序中的每一个的所有javascript划分到一个单独的文件中.

样品:

@helper CmsImage(int id)
{
  var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;

  <text>
    <input type="button" class="editor_function" style="display: none;" onclick="editImage(@id); return false;" />
    <script>
        function editImage(id) {
            $('#alt_text' + id).attr('value', $('#' + id).attr('alt'));
            $('#image_url' + id).attr('value', $('#' + id).attr('src'));
        }

        function saveImage(button, id) {
            $(button).parent().parent().removeClass('color-yellow').addClass('color-red');
            $(button).parent().siblings('div.widget-content').html('<img alt="' + $('#alt_text' + id).val() + '" src="' + $('#image_url' + id).val() + '" id="' + id + '" />');
        }
        #endif 
    </script>
    Image Url:
    <input type="text" id="image_url@{id.ToString();}" /><br />
    Alt Text: …
Run Code Online (Sandbox Code Playgroud)

javascript preprocessor

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

mongodb中的SQL视图

我目前正在评估mongodb我已经开始的项目,但我找不到任何有关mongodb中等效的SQL视图的信息.我需要的是,SQL视图提供的,是将来自不同表(集合)的数据整合到一个集合中.

我只想将一些文档聚集在一起并将它们标记为单个文档.这是一个例子:

我有以下文件:cc_address us_address billing_address shipping_address

但在我的应用程序中,我希望看到我的所有地址,并能够在一个文档中管理它们.

在其他情况下,我可能只想要集合中的几个字段:

我有以下文件:fb_contact twitter_contact google_contact reddit_contact

这些文档中的每一个都具有对齐的字段,如firstname lastname和email,但它们也有不对齐的字段.我希望能够将它们编译成只包含对齐字段的单个文档.

这可以通过SQL中的Views正确完成吗?我可以在MongoDb中完成这种功能吗?

mongodb

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

GetFields派生类型

我试图反映派生类型中的字段,但它返回基本类型的字段.

public class basetype
{
    string basevar;
}

public class derivedtype : basetype
{
    string derivedvar;
}
Run Code Online (Sandbox Code Playgroud)

在某些功能:

derivedtype derived = new derivedtype();

FieldInfo[] fields = derived.GetType().GetFields();
Run Code Online (Sandbox Code Playgroud)

这将返回basevar,但不返回derivedvar.我已经尝试了所有不同的绑定,它似乎没有什么区别.

此外,我在App_Code中的ASP.NET中执行此操作,其中basevar在App_Code中定义,derivedvar是在App_Controls中定义的用户控件,其中类型不在范围内.

c# reflection

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

PHP fgetcsv和自定义行结束符

我正在使用php导入csv,由于csv有时可能很大,因此我可以通过使用以下代码一次流式传输4096字节的文件来实现:

if(($handle = fopen($file, 'r')) !== false)
    {
        // loop through the file line-by-line
        while(($data = fgetcsv($handle)) !== false)
        {
            echo var_dump($data);
            unset($data);
        }
        fclose($handle);
    }
    else
    {
        echo "unable to open file $file <br>";
    }
Run Code Online (Sandbox Code Playgroud)

某些csv具有非标准的行结束符';' 并且我需要能够指定手动结束的行,以便fgetcsv正确获取csv的每一行。

我已经阅读了建议使用ini设置的其他解决方案:

ini_set("auto_detect_line_endings", true);
Run Code Online (Sandbox Code Playgroud)

但这并没有解决我要在这里提出的问题。

解决此问题的先前方法是获取整个文件并修改所有非标准的行尾,然后将其替换为回车和换行符。随着csvs大小的增加,此解决方案不再有效。

我在var dump中得到的是csv的所有行,而不是csv的单行。CSV中的示例行:

"col1,col2,col3,col4,col5;col1,col2,col3,col4,col5;col1,col2,col3,col4,col5;"
Run Code Online (Sandbox Code Playgroud)

php csv line-endings fgetcsv

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

通过反射动态调用textboxfor

我试图做的最终结果是通过反映对象及其属性来动态构建表单。

我已经创建了调用TextBoxFor和CheckBoxFor等的HtmlHelper方法,但是现在我需要帮助弄清楚如何将属性传递给Html.TextBoxFor时正确反映该属性。

这是辅助方法:

public static MvcHtmlString FormTextBox<TModel>(this HtmlHelper<TModel> helper, String id, String property_name, object model, RouteValueDictionary attributes)
    {          
        Type model_type = model.GetType();

        return helper.TextBoxFor(model_object => model_type.InvokeMember(property_name, BindingFlags.ExactBinding | BindingFlags.GetProperty, null, model, null));
    }
Run Code Online (Sandbox Code Playgroud)

但是它会在返回时中断,并显示以下错误代码:

模板只能与字段访问,属性访问,一维数组索引或单参数自定义索引器表达式一起使用。

基本上我想知道这是什么:

@Html.TextBoxFor(model => model.Name)
Run Code Online (Sandbox Code Playgroud)

并将其转换为:

@FormHelpers.FormTextBox("Name", model)
Run Code Online (Sandbox Code Playgroud)

并输出相同的内容。

更新

我将重申这一点,因为我在解决问题上取得了一些进展。

我已经从Expression.PropertyOrField创建了一个表达式,该表达式恰好创建了我要寻找的东西。但是我不能让TextBoxFor函数接受它。

Expression fieldExpr = Expression.PropertyOrField(Expression.Constant(model),property_name);

        return helper.TextBoxFor(Expression.Lambda<Func<TModel>>(fieldExpr, null).Compile()());
Run Code Online (Sandbox Code Playgroud)

关于如何正确将Expression传递给函数的任何想法?

c# reflection asp.net-mvc html-helper

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

MVC ajax形式的嵌套对象用于捕获控制器

在MVC3 Razor中:

我正在尝试使用来自多个对象的字段动态创建表单.但由于某种原因,我在控制器中获得的数据不包含输入值.

FormViewModel.cs

    namespace DynamicForm.Models
    {
        public class FormViewModel
        {
            public Name name = new Name();
            public Address address = new Address();

            public FormViewModel()
            {
            }
        }

public class Name
    {
        [Required()]
        public String first { get; set; }
        [Required()]
        public String last { get; set; }

        public Name()
        {
            first = "";
            last = "";
        }
    }
    public class Address
    {
        public String street1 { get; set; }
        public String street2 { get; set; }

        public Address()
        { …
Run Code Online (Sandbox Code Playgroud)

c# razor asp.net-mvc-3

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

从一个完整的html字符串构建HtmlGenericControl

我希望能够将属性添加到html字符串,而无需构建解析器来处理html.在一个特定的情况下,我希望能够提取HTML的id或向html服务器端插入一个id.

说我有:

string stringofhtml = "<img src=\"someimage.png\" alt=\"the image\" />";
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

HtmlGenericControl htmlcontrol = new HtmlGenericControl(stringofhtml);
htmlcontrol.Attributes["id'] = "newid";
Run Code Online (Sandbox Code Playgroud)

要么

int theid = htmlcontrol.Attributes["id"];
Run Code Online (Sandbox Code Playgroud)

这只是我可以访问/添加我拥有的html字符串属性的一种方式.

html c# asp.net

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