Я борюсь с чем-то, в чем я даже не уверен, если это возможно.
У меня есть типичная страница формы в проекте .NET MVC 3 Razor. На этой странице находится карта Google с механизмом поиска. Поиск обернут в форму, которая вызывает функцию JavaScript для обновления карты, если местоположение найдено.
Когда я пытаюсь использовать его, контроллер представления обрабатывает запрос, и состояние модели контроллера недопустимо (так как пользователь еще не закончил с остальной частью формы). Результатом является представление страницы, которая сбрасывает карту (полностью противоположно тому, что мне нужно).
Вот упрощенная версия представления:
@model OnlineEventReporting.ViewModels.ReportShortViewData
@{
Layout = "~/Views/Shared/_LayoutGoogleMap_with_all_js_code.cshtml";
}
<script type="text/javascript">
function showAddress(address) { [processing code] }
</script>
@using (Html.BeginForm("Index", "ShortReport", FormMethod.Post, new { name = "shortForm", id = "shortForm", data_ajax = "false" }))
{
@Html.ValidationSummary(true)
Info for the controller to handle:
@Html.TextBoxFor(model => model.AddressDetail.Street1, new { @maxlength = "50" })
<!-- I want this to 'fire' the JavaScript 'showAddress' function and for the controller to ignore it -->
<form style="text-align:center" action="#" onsubmit="showAddress(this.address.value); return false">
<input type="text" size="20" id="address" name="address" value="North Street, Guildford" />
<input type="submit" value="Search!" />
</form>
<div id="map" style="width: 100%; height: 400px; margin-left:20px;"></div>
More info for the controller to handle:
@Html.TextBoxFor(model => model.AddressDetail.Street2, new { @maxlength = "50" })
}
Я понимаю, что у меня есть форма внутри формы, но я не так, как я мог бы подойти к этому, так как мне нужна карта и функция поиска прямо в середине моей основной формы.
Любая помощь будет принята с благодарностью.
Большое спасибо,
Крис.