首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

设计_~_
EN

Stack Overflow用户
提问于 2014-11-11 05:40:18
回答 2查看 61关注 0票数 0

有一个视图,我需要在视图中显示地址细节

代码语言:javascript
运行
复制
Name
Street
State , City, Washington

现在这个地址的顺序对于每个国家来说都是不同的,就像中国一样,他们想要的格式如下。

代码语言:javascript
运行
复制
Name
State , City, Washington
Street

因此,我们所做的是写在其他声明中,并且有格式,以前没有任何问题,因为这只是一个或两个国家。

但是现在每个国家都看到了同样的不同要求,这将使我的观点非常沉重,难以维护。

能不能有人提供一个好的模式,让它更易于维护,就像一个对于每个国家都有不同的局部视图和负载该部分视图等等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-11 06:12:46

好的,最好的选择是对不同的国家有不同的视图,并根据一些identifier.This从控制器返回它们,这样maintainable.For代码一定不会使用if -否则。如果不是所有字段都是动态的,则可以为每个国家创建多个部分视图,在主视图上创建静态视图,在部分视图中创建动态字段。

现在,如果您有太多的国家,并且不想维护单独的视图,那么另一个选择是创建一个HtmlHelper扩展,并使用它在代码中动态创建视图,并返回MvcHtmlString,它可以在视图中使用,如下所示。

代码语言:javascript
运行
复制
 @Html.CountryFields('us')

编辑:

另外,请查看下面的链接,它在您的场景中可能很有用(使用上面提到的多个视图的好例子)

http://brianreiter.org/2011/03/23/simple-asp-net-mvc-globalization-with-graceful-fallback/

票数 0
EN

Stack Overflow用户

发布于 2014-11-11 06:29:40

这里只是一个想法,也许它可以帮助你,希望如此。

您可能需要添加新的tables Address(Id,Format),它将存储不同的可用格式,并将表AddressFormat(AddressId,CountryId)作为连接表存储在Country表中。

例如:

代码语言:javascript
运行
复制
Name
Street
State , City, Washington

可以格式化为"{0}<br/>{1}<br/>{2},{3},{4}",Name,Street,State,City,...

中国担任"{0}<br/>{2},{3},{4}<br/>{1}",Name,Street,State,City

因此,在表地址中,您将获得以下数据

代码语言:javascript
运行
复制
Id            Format
1             {0}<br/>{1}<br/>{2},{3},{4}
2             {0}<br/>{2},{3},{4}<br/>{1}

在你看来你可以用

代码语言:javascript
运行
复制
@Html.Raw(string.Format(Model.Format,Model.Name,Model.Street,Model.State,Model.City,Model.WashingtonField))

因此,这里的思想参数索引是相同的,但希望在显示它们时重新排序。

希望这个想法能给你一个提示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26858313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档