从帖子:
发送要作为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中使用与编译语言中的#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) 我目前正在评估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中完成这种功能吗?
我试图反映派生类型中的字段,但它返回基本类型的字段.
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中定义的用户控件,其中类型不在范围内.
我正在使用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) 我试图做的最终结果是通过反映对象及其属性来动态构建表单。
我已经创建了调用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传递给函数的任何想法?
在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) 我希望能够将属性添加到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字符串属性的一种方式.
c# ×4
javascript ×2
reflection ×2
asp.net ×1
asp.net-mvc ×1
csv ×1
dictionary ×1
fgetcsv ×1
html ×1
html-helper ×1
key-value ×1
line-endings ×1
mongodb ×1
php ×1
preprocessor ×1
razor ×1