J'ai actuellement un contrôle utilisateur qui est utilisé sur une page/Adresse/Modifier et une adresse/Créer. Ce contrôle utilisateur a simplement le code suivant dans à soumettre une nouvelle adresse au système:Question concernant un scénario de publication de formulaire ASP.NET MVC
<%
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>
<%
}
%>
<%
}
%>
Pour résumer le code ci-dessus, ce qu'il fait est dans le contrôleur, il interroge Google Maps géocodage l'adresse dans le zone de texte (c.-à-d. le transforme en un ensemble de coordonnées de longitude/latitude). Lorsque Google Maps renvoie plusieurs résultats, je stocke ces résultats dans ViewData ["GeocodeResults"], qui affiche ensuite les adresses possibles pour l'utilisateur final. Maintenant, cela fonctionne très bien pour afficher les adresses, mais ce que je veux vraiment, c'est que cette liste soit rendue comme une liste de liens hypertexte afin que l'utilisateur puisse cliquer sur l'adresse appropriée et le formulaire sera soumis avec cette adresse à la place de celui dans la zone de texte. Est-ce qu'il y a un moyen de faire ça?