Я закончил тем, что создал шаблон (Position.chtml) для конкретного подобъекта Position
в моей модели, например:
@model Models.Position
@{
var latitude = string.Format(System.Globalization.CultureInfo.InvariantCulture,
"{0:G}", Model.Latitude);
var longitude = string.Format(System.Globalization.CultureInfo.InvariantCulture,
"{0:G}", Model.Longitude);
}
@Html.Hidden("Latitude", latitude)
@Html.Hidden("Longitude", longitude)
<p />
<div id="mapCanvas"></div>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/maps.js")"></script>
<script type="text/javascript">
$(function () {
attachMap($('#mapCanvas'), $('#Position_Latitude'), $('#Position_Longitude'), true);
})
</script>
Таким образом, мне не нужно добавлять какие-либо атрибутык модельному классу.
Мне интересно, хотя ... это хорошая практика, включая javascript, как это?Я не знаю ни одного другого способа сделать это (кроме включения его в главную страницу, что я не хочу делать, поскольку мне это не нужно на всех страницах) без необходимости повторяться.Я хотел бы оставить это СУХОЙ ...
Также (я мог бы лучше задать новый вопрос для этого): Как сейчас, у меня есть этот шаблон 2 раза, один раз как шаблон редактора, один раз какшаблон отображения.Единственное отличие состоит в том, что последний параметр attachMap
должен быть true
для шаблона редактора и false
для шаблона отображения.Есть ли простой способ сделать это СУХОЙ?