2012-12-17 4 views
3

Я делаю домашнее задание, в котором я разрабатываю торговый сайт в asp.net MVC 3, и в настоящее время я выполняю свою работу только в представлениях. У меня есть страница продукта, и по щелчку деталей мне нужно открыть страницу с подробными сведениями о продукте.Отправить и получить данные на .cshtml странице

<a href="ProductDetails.cshtml"> Details </a> 

У меня есть несколько продуктов, и я хочу сообщить странице своей продукции о том, какие детали продукта открыты. Один из способов это я могу добавить Id с URL, как

<a href="ProductDetails.cshtml?id=1"> Details </a> 

Но я не могу понять, как я могу получить этот идентификатор на странице детали продукта, так как у меня нет контроллера и не модель, и я выборку данных с помощью компактной базы данных на странице .cshtm с использованием кода на стороне сервера.

+3

Вы с помощью MVC, и вы не имеют M или C? –

+0

Да, потому что я студент и работаю по частям, так что в настоящее время у меня нет M или C. На M или C моя лекция состоится завтра :) – Billz

+0

Кажется, вам не хватает фундаментальных идей, стоящих за работой ASP.NET MVC. Возможно, вы захотите попробовать некоторые из уроков: http://www.asp.net/mvc/tutorials Я думаю, что это прояснит ваш вопрос. – Pete

ответ

9

Вы можете получить доступ к строке запроса с помощью Request.QueryString["key"]. Поэтому я полагаю, вы хотите использовать что-то вроде этого:

@{ 
    var myProductId = Request.QueryString["id"]; 
} 

Оговорка: Конечно, это будет плохая практика, и обычно шаблон MVC требует, чтобы вы тянуть ID в действии вашего контроллера , выборка данных модели и возврат данных модели в представление. View должен знать как можно меньше о таких вещах, как Query String, и любой программной логике, насколько это возможно.

public class ProductController : Controller 
{ 
    public ActionResult ProductDetails(string id) 
    { 
     MyProduct model = SomeDataSource.LoadByID(id); 
     return View(model); 
    } 
} 
2

Вы можете получить доступ к нему через объект запроса:

@Request.Params["id"] 
2

Никто не говорил, что вы, вероятно, хотите изменить ссылку:

<a href="ProductDetails.cshtml?id=1"> Details </a> 

к чему-то вроде:

<a href="@Url.Action("ProductDetails", "Product", new {@id = 1})" >Details</a> 
0
<div class="box-button">@Html.ActionLink("Details", "Course", new { id = item.id }, new { @class = "btn btn-default" })</div> 
Смежные вопросы