首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有关ASP.NET MVC表单发布方案的问题

有关ASP.NET MVC表单发布方案的问题
EN

Stack Overflow用户
提问于 2008-11-16 07:50:52
回答 1查看 541关注 0票数 1

我目前有一个在/Address/Edit和/Address/Create页面上都使用的用户控件。这个用户控件只包含以下代码,用于向系统提交新地址:

代码语言:javascript
代码运行次数:0
运行
复制
<% 
    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“中,然后它将向最终用户显示可能的地址。

现在,这可以很好地显示地址,但我真正想要的是将该列表呈现为超链接列表,以便用户可以单击适当的地址,表单将使用该地址提交,而不是文本框中的地址。有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2008-11-16 17:58:42

类似于:

代码语言:javascript
代码运行次数:0
运行
复制
<a href='javascript:void(0);' onclick='submitAddress(this);'>
    <%= geocodeResult.StreetAddress %></a>

你有的地方

代码语言:javascript
代码运行次数:0
运行
复制
function submitAddress(link) {
   $('input#streetAddress:first').text(link.innerHtml);
   $('input#submit').click();
}

你也可以把它放在一个隐藏的字段中,这意味着你不需要在谷歌地图上搜索这个地址。也就是说,如果提供了HiddenStreetAddress,则只使用without lookup。如果没有,那么在StreetAddress上进行谷歌搜索。如果有多个结果,则显示结果。如果不是,则使用提供的。

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

https://stackoverflow.com/questions/293652

复制
相关文章

相似问题

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