我的(MVC2)应用程序在视图中显示多个地址 每个地址只包含一个信息子集,如firstname和lastname。请求是当鼠标悬停在结果上时,应显示完整的地址信息。
应该使用html模板。
此模板定义了应该如何显示(!)完整地址 - 但它没有定义应显示的内容(!)。
意味着可以假设完整地址始终是“名字”,“姓氏”,“街道”,“邮政编码”和“城市”(例如并保持简单)。这永远不会改变
但是,例如,html模板中的背景颜色可以从白色更改为绿色,或者姓氏的大小可以从<h1>
更改为<h2>
...
解决问题的最佳方法是什么? 我更愿意写一些共享代码(关键字:ascx) 这个共享代码应该包装模板,非常简单,看起来像这样:
<div id=”mouseOver” style="display: none;" >
X_REPLACE_X
</div>
模板看起来像这个简化的例子:
FirstName: {Name}<br/>
Lastname: <h1>{Lastname}/<h1><br/>
ZipCode: {ZipCode}<br/>
然后我会通过View上的“Html.RenderPartial”渲染ascx代码,并将每个地址映射到javascript鼠标悬停功能。
javascript函数将替换模板中的占位符(如{FistName},{LastName}等),定位并显示它。
这就是我的问题:
模板不应直接放在包装器中(ascx - code)!
运行时的方法必须将“X_REPLACE_X”替换为服务器存储模板上的某个位置 因为这使我能够在不更改和发布代码的情况下更改模板!
如何管理?
有更好的解决方法吗?我应该使用ajax调用来获取变量中的模板吗?
任何帮助都会非常棒! 提前thxs!
答案 0 :(得分:1)
听起来,适应显示差异的最佳方法是简单地使用不同的css类。用于完整信息的html模板不会更改,可用于所有地址,而背景颜色和文本大小之间的差异可以通过不同的css设置来处理。
相关地,我不会使用<h1></h1>
和<h2></h2>
处理不同的文字大小,而是通过css处理文本大小的公共标记(例如<span></span>
)。 / p>