Вопрос касательно сценария размещения формы ASP.NET MVC - PullRequest
1 голос
/ 16 ноября 2008

В настоящее время у меня есть пользовательский элемент управления, который используется на странице / Address / Edit и / Address / Create. Этот пользовательский элемент управления просто содержит следующий код для отправки нового адреса в систему:

<% 
    using (Html.BeginForm())
    {
%>
        <table>
            <tr>
                <td>Street Address</td>
                <td>
                    <%= Html.TextBox("StreetAddress", (ViewData.Model != null) ? ViewData.Model.StreetAddress : "") %>
                    <%= Html.ValidationMessage("Address.StreetAddress") %>
                </td>
            </tr>
        </table>
        <%= Html.SubmitButton() %>
        <%
            if (ViewData["GeocodeResults"] != null) {
        %>      
            <p>
                Google maps found the following addresses that matched the address you entered.  Please select
                the appropriate address.  If none of these addresses are correct, try reentering the address
                again and be as specific as possible.
            </p>
            <ul>
                <% 
                    foreach (GeocodeResult geocodeResult in (List<GeocodeResult>)ViewData["GeocodeResults"]) { 
                %>
                        <li>
                            <%= geocodeResult.StreetAddress %>
                        </li>
                <% 
                   } 
                %>
            </ul>
        <%  
            } 
        %>
<%
    }
%>

Чтобы подвести итог приведенному выше коду, он выполняет в контроллере запрос к Google Maps для геокодирования адреса в текстовом поле (т.е. превращает его в набор координат долготы / широты). Когда Google Maps возвращает более одного результата, я сохраняю эти результаты в ViewData ["GeocodeResults"], который затем отображает возможные адреса для конечного пользователя.

Теперь, это нормально работает для отображения адресов, но я действительно хочу, чтобы этот список отображался как список гиперссылок, чтобы пользователь мог щелкнуть по соответствующему адресу, и форма будет отправлена ​​с этим адресом вместо один в текстовом поле. Есть ли способ сделать это?

1 Ответ

2 голосов
/ 16 ноября 2008

Что-то вроде:

<a href='javascript:void(0);' onclick='submitAddress(this);'>
    <%= geocodeResult.StreetAddress %></a>

где у вас есть

function submitAddress(link) {
   $('input#streetAddress:first').text(link.innerHtml);
   $('input#submit').click();
}

Вы также можете поместить его в скрытое поле, которое будет означать, что вам не нужно выполнять поиск по этому адресу на карте Google. То есть, если указан HiddenStreetAddress, просто используйте без поиска. Если нет, то сделайте поиск Google на StreetAddress. Если более одного результата, отобразите результаты. Если нет, то используйте при условии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...