Con*_*ell 6 .net javascript c# ajax json
我在C#2.0中使用ASP.NET.我为数据库创建了一些对象,这些对象中的每一个都具有可以本地调用的属性,或者以类似的方式调用,并从中创建RESTful JSON API.
我有很多类似标签的东西,我喜欢在这个网站上称为"模块" - 模块的功能是将数据转换为HTML以显示在页面上.理想情况下,需要在服务器端C#代码中加载第一个选项卡,然后在单击选项卡时使用Ajax加载其他选项卡,但对于旧浏览器和搜索引擎,选项卡仍然是一个链接,将加载相同的HTML代码服务器端.
目前我将JavaScript代码与将每个模块转换为HTML的C#代码完全分开编写,但该方法实际上是相同的,只是一种不同的语言.与此示例类似.
C#代码
public override string GetHtml()
{
IJsonObjectCollection<Person> response = ((Village)page).People;
string html = "<div id=\"test\">";
foreach (Person person in response)
{
html += "<div class=\"person\">";
html += person.Name;
if(canEdit) html += "*";
html += "</div>";
}
return html + "</div>";
}
Run Code Online (Sandbox Code Playgroud)
JavaScript代码
function getHtml() {
JsonRequest('/json/villages/1/people', function(response) {
var html = '<div id="test">';
for (int i = 0; i < response.length; i++)
{
var person = response[i];
html += '<div class="person">';
html += person.name;
if(canEdit) html += '*';
html += '</div>';
}
return html + '</div>';
});
}
Run Code Online (Sandbox Code Playgroud)
你可能会看到我对这个问题的看法.这样做最有效的方法是什么?我在考虑几种不同的选择 -
1.每个ModuleToHtmlMethod都可以是一个类,它定义将此数据对象转换为HTML的方法.我尝试了这个,但我停了下来因为我太复杂了.
2.编写我自己的脚本语言,可以解释为C#,但也"编译"成JavaScript代码.
3.只需在C#中编写批次并使用Ajax简单地从C#请求HTML内容
4.保持代码分离并将每个方法写入两次.
我想最终允许其他开发人员编写这些"模块",所以选项2可能是最好的选择吗?
我会放弃选项 4,因为它会使维护变得更加困难,并且最终可能会导致通过 Javascript 生成的 HTML 与 C# 代码生成的 HTML 之间不同步。我还会放弃选项 2,因为这可能会使代码对其他开发人员来说更加困难,而且可能也没有必要。
我肯定会在一处生成 HTML,并可能公开使用 C# 现有函数返回 HTML 片段的 RESTful HTML API。所以从你的 Javascript 中你可以调用:
function getHtml() {
MyHtmlRequest('/html/villages/1/people', function(response) {
var html = response.Text;
return html;
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |