Asp.net mvc .Net RunTimeBinderException
我有一个包含复杂数据的数据内容,我只需要在数据的动态视图中显示的索引名。在调试模式下,我可以看到数据,但无法获取数据 您可以在下图中看到数据的内容):Asp.net mvc .Net RunTimeBinderException,asp.net-mvc,asp.net-dynamic-data,Asp.net Mvc,Asp.net Dynamic Data,我有一个包含复杂数据的数据内容,我只需要在数据的动态视图中显示的索引名。在调试模式下,我可以看到数据,但无法获取数据 您可以在下图中看到数据的内容): 我找到了一个解决方案,可以检查所选索引是否包含文档;如果是, 我获取索引中的第一个文档,并将其解析为客户机中的键(字段名)。 这是我的职责: [HttpPost] public ActionResult getIndexFields(string index_name) { var node
我找到了一个解决方案,可以检查所选索引是否包含文档;如果是, 我获取索引中的第一个文档,并将其解析为客户机中的键(字段名)。 这是我的职责:
[HttpPost]
public ActionResult getIndexFields(string index_name)
{
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(
node,
defaultIndex: index_name
);
var esclient = new ElasticClient(settings);
var Documents = esclient.Search<dynamic>(s => s.Index(index_name).AllTypes().Source());
string fields = "";
if (Documents.Documents.Count() > 0)
{
fields = JsonConvert.SerializeObject(Documents.Documents.FirstOrDefault());
var data = Documents.Documents.FirstOrDefault().Source;
return Json(new
{
result = fields,
Success = true
});
}
return Json(new
{
result = "",
Success = false
});
}
[HttpPost]
公共操作结果getIndexFields(字符串索引\u名称)
{
var node=新Uri(“http://localhost:9200");
var设置=新连接设置(
节点,
defaultIndex:index\u名称
);
var esclient=新的ElasticClient(设置);
var Documents=esclient.Search(s=>s.Index(Index_name).AllTypes().Source());
字符串字段=”;
if(Documents.Documents.Count()>0)
{
fields=JsonConvert.SerializeObject(Documents.Documents.FirstOrDefault());
var data=Documents.Documents.FirstOrDefault().Source;
返回Json(新的
{
结果=字段,
成功=正确
});
}
返回Json(新的
{
结果=”,
成功=错误
});
}
还有我的js:
$.ajax({
url: "getIndexFields?index_name=" + $(this).val(),
type: "POST",
success: function (data) {
if (data.Success) {
var fields = JSON.parse(data.result);
var fields_arr = [];
$.each(fields, function (value, index) {
fields_arr.push(
{
id: value,
label: value
})
});
options.filters = fields_arr;
var lang = "en";//$(this).val();
var done = function () {
var rules = $b.queryBuilder('getRules');
if (!$.isEmptyObject(rules)) {
options.rules = rules;
}
options.lang_code = lang;
$b.queryBuilder('destroy');
$('#builder').queryBuilder(options);
};
debugger
if ($.fn.queryBuilder.regional[lang] === undefined) {
$.getScript('../dist/i18n/query-builder.' + lang + '.js', done);
}
else {
done();
}
}
else {
event.theme = 'ruby';
event.heading = '<i class=\'fa fa-warning\'></i> Process Failure';
event.message = 'User could not create.';
event.sticky = true;
$("#divfailed").empty();
$("#divfailed").hide();
$("#divfailed").append("<i class='fa fa-warning'></i> " + data.ErrorMessage);
$("#divfailed").show(500);
setTimeout(function () {
$("#divfailed").hide(500);
}, 3000);
}
},
error: function (a, b, c) {
debugger
event.theme = 'ruby';
event.heading = '<i class=\'fa fa-warning\'></i> Process Failure';
event.message = 'Object could not create.';
$("#divfailed").empty();
$("#divfailed").hide();
msg = c !== "" ? c : a.responseText;
$("#divfailed").append("<i class='fa fa-warning'></i> " + msg);
$("#divfailed").show(500);
setTimeout(function () {
$("#divfailed").hide(500);
}, 3000);
}
});
$.ajax({
url:“getIndexFields?index_name=“+$(this).val(),
类型:“POST”,
成功:功能(数据){
if(data.Success){
var fields=JSON.parse(data.result);
var字段_arr=[];
$.each(字段、函数(值、索引){
字段\u arr.push(
{
id:值,
标签:值
})
});
options.filters=字段\u arr;
var lang=“en”/$(this.val();
var done=函数(){
var rules=$b.queryBuilder('getRules');
如果(!$.isEmptyObject(规则)){
options.rules=规则;
}
options.lang_code=lang;
$b.queryBuilder(“销毁”);
$(“#builder”).queryBuilder(选项);
};
调试器
if($.fn.queryBuilder.regional[lang]==未定义){
$.getScript(“../dist/i18n/query builder.+lang+”.js',完成);
}
否则{
完成();
}
}
否则{
event.theme='ruby';
event.heading=‘进程失败’;
event.message='用户无法创建';
event.sticky=true;
$(“#divfailed”).empty();
$(“#divfailed”).hide();
$(“#divfailed”).append(“+data.ErrorMessage”);
元(500元);;
setTimeout(函数(){
$(“#divfailed”).hide(500);
}, 3000);
}
},
错误:函数(a、b、c){
调试器
event.theme='ruby';
event.heading=‘进程失败’;
event.message='无法创建对象';
$(“#divfailed”).empty();
$(“#divfailed”).hide();
msg=c!==“”?c:a.responseText;
$(“#divfailed”).append(“+msg”);
元(500元);;
setTimeout(函数(){
$(“#divfailed”).hide(500);
}, 3000);
}
});
$.ajax({
url: "getIndexFields?index_name=" + $(this).val(),
type: "POST",
success: function (data) {
if (data.Success) {
var fields = JSON.parse(data.result);
var fields_arr = [];
$.each(fields, function (value, index) {
fields_arr.push(
{
id: value,
label: value
})
});
options.filters = fields_arr;
var lang = "en";//$(this).val();
var done = function () {
var rules = $b.queryBuilder('getRules');
if (!$.isEmptyObject(rules)) {
options.rules = rules;
}
options.lang_code = lang;
$b.queryBuilder('destroy');
$('#builder').queryBuilder(options);
};
debugger
if ($.fn.queryBuilder.regional[lang] === undefined) {
$.getScript('../dist/i18n/query-builder.' + lang + '.js', done);
}
else {
done();
}
}
else {
event.theme = 'ruby';
event.heading = '<i class=\'fa fa-warning\'></i> Process Failure';
event.message = 'User could not create.';
event.sticky = true;
$("#divfailed").empty();
$("#divfailed").hide();
$("#divfailed").append("<i class='fa fa-warning'></i> " + data.ErrorMessage);
$("#divfailed").show(500);
setTimeout(function () {
$("#divfailed").hide(500);
}, 3000);
}
},
error: function (a, b, c) {
debugger
event.theme = 'ruby';
event.heading = '<i class=\'fa fa-warning\'></i> Process Failure';
event.message = 'Object could not create.';
$("#divfailed").empty();
$("#divfailed").hide();
msg = c !== "" ? c : a.responseText;
$("#divfailed").append("<i class='fa fa-warning'></i> " + msg);
$("#divfailed").show(500);
setTimeout(function () {
$("#divfailed").hide(500);
}, 3000);
}
});