我正在迁移到 MVC 的旧 Web 窗体应用程序中有一堆代码。各种页面的某些部分需要由视图生成 HTML,然后通过 AJAX 调用重新生成。很多 HTML 非常复杂,因此将所有 html 生成集中在一个位置(最好是模板)确实很有帮助。
我的问题是,有没有更好的方法来解决这个问题?我应该使用部分视图还是什么?这将如何转化为 WebService 调用?我可以做一些更有效的事情吗?
基本上这就是我现在正在做的事情(这是一个非常基本的、糟糕的例子,所以我很抱歉):
在伪代码中:
标记
<!--- some html here -->
<div id="myContent">
<%=StaticMethods.GetContent()%>
</div>
<button id="btnUpdate">Update</button>
<!--- some html here -->
AJAX Javascripty 的东西
$(document).ready(function() {
$('#btnUpdate').click(function() {
$.ajax({
url:'MyService.asmx/MyWebServiceMethod',
/*crap here*/
success: function(result, status, code) {
$('#myContent').html(result);
}
});
});
});
静态方法
public static class StaticMethods {
public static string GetContent() {
var sb = new StringBuilder();
var somethings = GetSomeRandomThings();
//just an example. it's normally much more complex.
foreach(var something in somethings) {
sb.AppendFormat("<li>{0}</li>",something.Name);
}
}
}
我的网络服务
public string MyWebServiceMethod() {
return StaticMethods.GetContent();
}