Вы можете отобразить вопрос без идентификатора, но заголовок вопроса должен быть уникальным для каждого вопроса.
Также вы все равно можете использовать идентификаторы для поиска вопросов, а затем перенаправить на другой URL, который отображает только заголовок вопроса.Если вы хотите это сделать, я могу опубликовать пример.
Вот пример:
// this method finds a file from database using the id
//and passes the object with TempData
public ActionResult InitialDetail(int id)
{
var question = questionRepository.GetFile(id);
if (question==null)
return View("NotFound");
else
{
TempData["question"] = question;
return Redirect("/questions/" + question.Name);
}
}
//this method uses model passed from other method and displays it
public ActionResult Details(string questionName)
{
if (TempData["question"] == null)
{
return View("NotFound");
}
else
return View("Details", TempData["question"]);
}
Вы также должны определить маршрут, чтобы это работало
routes.MapRoute("QuestionPage", //Files/id/fileName
"questions/{questionName}",
new { controller = "Questions", action = "Details" } );
Добавить этот маршрут непосредственно перед маршрутом по умолчанию.Это может привести к путанице, если у вас есть маршруты для URL, начинающиеся с http://domain.com/questions.
Примечание: Возможно, это не лучшее решение.Если заголовки ваших вопросов не уникальны, вы не можете размещать ссылки с этой структурой на своей странице.Сначала он должен искать вопрос, используя ID.