MVC Dynamic Views от Url Slug - PullRequest
1 голос
/ 23 июня 2010

Я создаю свое первое веб-приложение .NET MVC и люблю простоту и гибкость. Однако я пришел к своему первому камню преткновения.

У меня есть список предметов, и если вы не вошли в систему, вы увидите ссылку для предварительного просмотра, которую я бы хотел направить на что-то вроде ниже:

/preview/unique-slug

После этого представление должно позволить мне отобразить содержимое из базы данных (по существу, страницу с подробностями)

Я не уверен, как к этому подойти, и что мне следует делать с Google, поскольку полученные результаты были плохими.

Любые указатели, пожалуйста?

1 Ответ

3 голосов
/ 23 июня 2010

Вот как я делал это в прошлом:

Вам необходимо сохранить в базе данных столбец с фрагментом, на который ссылается каждый элемент. Затем создайте маршрут, подобный следующему:

routes.MapRoute("PreviewLink",
    "/preview/{slug}",
    new { controller = "Preview", action = "Details" }
);

Так что это вызовет метод Details для PreviewController следующим образом:

class PreviewController : Controller
{
    public ActionResult Details(string slug)
    {
        var model = db.GetItemBySlug(slug);
        return View("Details", model);
    }
}

По сути, вы получите слаг в виде строки в вашем методе действия, запросите в базе данных предмет с соответствующим слагом и отобразите его. По сути, мы просто заменяем целое число id на строку slug.

Надеюсь, это прояснит для вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...