我已经看过关于此的大部分帖子,但我似乎无法找到正确的解决方案。
我有2个解决方案,Bioman和PowerRangers,都有一个代码模块,一个javascript获取触发器下拉列表更改加载一个表(如下图所示)
BIOMAN使用Ajax使用CodesController上的Index Action获取数据
function ajaxCall(obj) {
var retdata = {};
$.ajax({
dataType: "json",
type: "POST",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(obj),
async: false,
processData: false,
cache: false,
success: function (data) {
retdata = data;
},
error: function (xhr) {
alert("error");
}
});
return retdata;
}
然后调用javascript加载表
function drawCodesTable(codes) {
var sHTML = [];
if (codes == null) return;
if (codes.length > 0) {
$("#dvCreateMenu").css("display", "");
sHTML.push("<table class='table'>")
sHTML.push("<thead>");
sHTML.push("<tr>");
sHTML.push("<th>Code Id</th>");
sHTML.push("<th>Code Name</th>");
sHTML.push("<th>Code Display</th>");
sHTML.push("<th>Code Group</th>");
sHTML.push("<th>Active Ind</th>");
sHTML.push("<th>Action</th>");
sHTML.push("</tr>");
sHTML.push("</thead>");
sHTML.push("<tbody>");
for (var x = 0; x < codes.length; x++) {
sHTML.push("<tr>");
sHTML.push("<td>" + codes[x].CodeId + "</td>");
sHTML.push("<td>" + codes[x].CodeName + "</td>");
sHTML.push("<td>" + codes[x].Display + "</td>");
sHTML.push("<td>" + codes[x].CodeGroupName + "</td>");
sHTML.push("<td>" + codes[x].ActiveInd + "</td>");
sHTML.push("<td>");
sHTML.push("<a code_id=" + codes[x].CodeId + " class='btn btn-primary btn-xs' action='edit'>Edit</a>");
sHTML.push(" <a code_id=" + codes[x].CodeId + " class='btn btn-danger btn-xs' action='delete'>Delete</a>");
sHTML.push("</td>");
sHTML.push("</tr>");
}
sHTML.push("</tbody>");
sHTML.push("</table>")
}
}
POWERRANGERS调用load函数并从CodesController调用Load Action,然后返回一个Partial View来加载相同的表结构
这是POWERRANGERS的View Structue
$("#dvCodes").empty()
.load("/Codes/Load?id=" + $(this).val() + "×tamp=" + new Date().getTime());
BIOMAN在本地网络和外部网络上都能正常运行。
但是,当POWERANGER在网络外访问时,下拉列表项显示哪些数据库可以从View访问,但它不会在部分视图上呈现表,这是我在不同浏览器上获得的错误
铬
Internet Explorer