有一个视图,我需要在视图中显示地址细节
Name
Street
State , City, Washington现在这个地址的顺序对于每个国家来说都是不同的,就像中国一样,他们想要的格式如下。
Name
State , City, Washington
Street因此,我们所做的是写在其他声明中,并且有格式,以前没有任何问题,因为这只是一个或两个国家。
但是现在每个国家都看到了同样的不同要求,这将使我的观点非常沉重,难以维护。
能不能有人提供一个好的模式,让它更易于维护,就像一个对于每个国家都有不同的局部视图和负载该部分视图等等。
发布于 2014-11-11 06:12:46
好的,最好的选择是对不同的国家有不同的视图,并根据一些identifier.This从控制器返回它们,这样maintainable.For代码一定不会使用if -否则。如果不是所有字段都是动态的,则可以为每个国家创建多个部分视图,在主视图上创建静态视图,在部分视图中创建动态字段。
现在,如果您有太多的国家,并且不想维护单独的视图,那么另一个选择是创建一个HtmlHelper扩展,并使用它在代码中动态创建视图,并返回MvcHtmlString,它可以在视图中使用,如下所示。
@Html.CountryFields('us')编辑:
另外,请查看下面的链接,它在您的场景中可能很有用(使用上面提到的多个视图的好例子)
http://brianreiter.org/2011/03/23/simple-asp-net-mvc-globalization-with-graceful-fallback/
发布于 2014-11-11 06:29:40
这里只是一个想法,也许它可以帮助你,希望如此。
您可能需要添加新的tables Address(Id,Format),它将存储不同的可用格式,并将表AddressFormat(AddressId,CountryId)作为连接表存储在Country表中。
例如:
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
因此,在表地址中,您将获得以下数据
Id Format
1 {0}<br/>{1}<br/>{2},{3},{4}
2 {0}<br/>{2},{3},{4}<br/>{1}在你看来你可以用
@Html.Raw(string.Format(Model.Format,Model.Name,Model.Street,Model.State,Model.City,Model.WashingtonField))因此,这里的思想参数索引是相同的,但希望在显示它们时重新排序。
希望这个想法能给你一个提示
https://stackoverflow.com/questions/26858313
复制相似问题