Я не могу передать значение для просмотра - PullRequest
0 голосов
/ 05 июля 2010

Я просто играю с ASP.NET MVC 2 для обучения. Я могу передать свои модели для просмотра, но, потратив 1-2 часа, мне не удается передать данные для просмотра. Например:

www.example.com / home / show / asdf Я пытаюсь получить строку asdf для отображения на экране.

    public ActionResult Test(string ID)
    {
        return View(ID);
    }

С помощью этого метода я пытаюсь захватить его. На мой взгляд, я использую <%: Html.LabelFor (m => m в качестве строки)%>. Это может выглядеть глупо. Я думаю, что все строки в URL-адресах отображаются в методах, но не в целых числах, поэтому я думаю, что мне нужно использовать вопросительный знак, как этот пример.com/home/Test?asdf? я тоже попробую.

Edit:

Передача целого числа по URL-адресу в аргумент метода, запутайте меня. Example.com/home/test/2 в этом URL-адресе 2 будет аргументом тестового метода, поэтому я подумал о том же для строки. Я думаю, что мы можем передать только целое число и не можем делать то же самое с любыми другими значениями. Так что я думаю, что я могу ловить значения только с помощью строки запроса, так как я могу передать простой тип строки для просмотра?

Ответы [ 3 ]

3 голосов
/ 05 июля 2010

Вы не можете вызвать функцию просмотра подобным образом. На самом деле вы можете, но он будет искать представление с именем независимо от того, что вы вводите в URL. Он не будет использовать ваш тестовый вид. Вы не можете передать строку как модель, потому что она должна быть объектом. Проверьте View метод перегрузки. Я предлагаю вам создать класс для модели, а затем отправить его в представление.

Я предлагаю что-то подобное.

public ActionResult Test(string id)
{
    SomeModelClass model=new SomeModelClass(id);
    return View(model);
}

Если вы хотите передать строку, вы должны привести ее как объект

public ActionResult Test(string id)
{
    return View((Object)id);
}
1 голос
/ 06 июля 2010
public ActionResult Test(string ID)
{
 ViewData["ID"] = ID
 return View();
}



<p>


<div class="simple">
<%= Html.Encode(ViewData["ID"]) %>
</div>
0 голосов
/ 05 июля 2010

Попробуйте

public ActionResult Test(string ID)
{
 return View("Test", ID);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...