У меня есть вопрос, что они здесь пользователи хотят URLs как http://host/Post/PostTitleURL переписано + ASP.NET MVC
Возможно ли это?
Как вы не проходите мимо действия?
Отношения
У меня есть вопрос, что они здесь пользователи хотят URLs как http://host/Post/PostTitleURL переписано + ASP.NET MVC
Возможно ли это?
Как вы не проходите мимо действия?
Отношения
Конечно, вы просто делаете подходящий маршрут. Это очень зависит от других маршрутов, которые у вас есть на вашей карте, но эта шутка работает практически в любой ситуации. Положите его перед маршрутом по умолчанию.
routes.MapRoute(
"Login",
"Page/{id}",
new { controller = "Page", action = "index", id = "" }
);
Вы можете вывести действие путем создания соответствующих URL Routing schemes
This MSDN статья идет, чтобы подробно, как настроить значения по умолчанию.
AFAIK, функция перезаписи URL введена только в IIS 7. Для получения дополнительной информации об этом читайте this blog.
Строго говоря, может быть правильно, но ASP.net MVC будет работать на IIS6 с некоторыми очень простыми шагами, включая переписывание URL. См. здесь: http://blog.codeville.net/2008/07/04/options -for-deploying-aspnet-mvc-to-iis-6/ – Palantir
Palantir правильно, вы можете сделать маршрут, как это:
routes.MapRoute(
"Posts", // route name
"Post/{PostTitle}",
new { controller = "Post", action = "Index" }
);
А потом, в вашем PostController, вы должны создать следующие меры:
public ActionResult Index(string PostTitle)
{
...
}
Я сделал это, и теперь он работает. Хе-хе попробует и проследит, не попал ли он в маршрут! – 2009-10-02 07:34:29
Я имел ввиду, что это не работает – 2009-10-02 07:39:11
Попробуйте cha nge name Post somehing else - он может столкнуться с действием Post (GET/POST) - просто угадать :-) – gius
Попробуйте изменить PostController к этому (для целей тестирования).
public class PostController : Controller
{
public string Index(string postTitle)
{
return postTitle;
}
}
И ваш маршрут определяется как
routes.MapRoute(
"Posts", // route name
"Post/{PostTitle}",
new { controller = "Post", action = "Index" }
);
если я делаю это Http: // Localhost: 3630/Post/Neque_porro_quisquam_est routes.MapRoute ( "Post", // маршрут name «Post/{title}», // URL с параметрами new {controller = "Post", action = "Index", title = ""} // Параметры по умолчанию ); Я получаю ресурс не может быть найден! :( – 2009-10-02 07:19:25
У вас есть пост-контроллер на месте и действие индекса, принимающего строку (не int) в качестве входного сигнала? Вы перекомпилировали все? – Palantir
@jack Какие еще страницы MVC? Они работают? – gius