Как правильно читать / передавать значения строки запроса в представление в MVC2? - PullRequest
0 голосов
/ 15 июля 2010

мой URL работает правильно, так как я могу войти в правильный метод управления, но ... как мне прочитать имя состояния из URL в представлении?

Мой URL: http://localhost:10860/Listings/Arizona/page1

Мой взгляд:

> "%>

<h2>Test BY STATE</h2>

 <%
     LOTW.Models.ListingRepository dr = new LOTW.Models.ListingRepository();
     ListViewListings.DataSource = dr.GetByStateName(???? I can hard code "Arizona" and this works???????); // how do i grab the 'Arizona' from the url? Reqquest.Querystring doesn't work?
     ListViewListings.DataBind();
    %>

 <%--Define the table headers to work with the tablesorter--%>
    <asp:ListView runat="server" ID="ListViewListings">
        <LayoutTemplate>
            <table id="ListViewListings" class="tablesorter">
                <thead>
                    <tr>.....

Ответы [ 2 ]

0 голосов
/ 15 июля 2010

Бит, приведенный ниже, на самом деле не относится к виду

<%
 LOTW.Models.ListingRepository dr = new LOTW.Models.ListingRepository();
 ListViewListings.DataSource = dr.GetByStateName(???? I can hard code "Arizona" and this works???????); // how do i grab the 'Arizona' from the url? Reqquest.Querystring doesn't work?
 ListViewListings.DataBind();
%>

Некоторые из них действительно должны быть в методе действия контроллера.

class HomeController {
 public ActionResult Index(string state) {
   LOTW.Models.ListingRepository dr = new LOTW.Models.ListingRepository();
   var list = dr.GetByStateName(state); // how do i grab the 'Arizona' from the url? Reqquest.Querystring doesn't work?

   return View(list);
 }
}

Параметр state в методе действия будет исходить из URL. В зависимости от того, как вы настроили свои маршруты, это может быть либо mysite.com/home/NY, либо mysite.com/home/?state=NY

Тогда в представлении:

<%
 ListViewListings.DataSource = Model;
 ListViewListings.DataBind();
%>
0 голосов
/ 15 июля 2010

Я бы не использовал столько кода в вашем View.Почему бы не использовать контроллер для чтения строки запроса и передачи значения в контроллер с помощью ViewData.

Контроллер

Function Index() As ActionResult
   ''# however you access your repository
   ViewData("StateName") = dr.GetByStateName(Request.QueryString("TheState"))
End Function

Разметка

<% For Each item In ViewData("StateName") %>
       <li><%: item.State %></li>
<% Next%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...