Вы помещаете атрибут автофокуса в неправильное место.
@Html.EditorFor(model => model.Description,
new { htmlAttributes = new { @class = "form-control" }, autofocus = "" })
Попробуйте это вместо:
@Html.EditorFor(model => model.Description,
new { htmlAttributes = new { @class = "form-control", autofocus = "" } })
Это взяло меня немного, но я выяснил, как заставить расширения работать с IIS 6. Во-первых, необходимо переделать маршрутизацию основы для включения .aspx так, чтобы они были направлены через фильтр ISAPI ASP.NET.
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
, Если Вы перешли к Home.aspx, например, Ваш сайт должен хорошо работать. Но Default.aspx и адрес страницы по умолчанию http:// [веб-сайт] / остановка, работающая правильно. Таким образом, как это фиксируется?
ну, необходимо определить второй маршрут. К сожалению, с помощью Default.aspx, поскольку маршрут не работает правильно:
routes.MapRoute(
"Default2", // Route name
"Default.aspx", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
Поэтому, как Вы заставляете это работать? Ну, это - то, где Вам нужен исходный код маршрутизации:
routes.MapRoute(
"Default2", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
, Когда Вы делаете это, Default.aspx и , http:// [веб-сайт] / оба начинает работать снова, я думаю, потому что они становятся успешно отображенными назад на Домашнем контроллере. Таким образом, полное решение:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"Default2", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
И Ваш сайт должен начать работать просто великолепно под IIS 6. (По крайней мере, это делает на моем ПК.)
И в качестве награды, если Вы используете HTML. ActionLink () на Ваших страницах, Вам не придется изменить никакую другую строку кода всюду по всему сайту. Этот метод заботится о надлежащем наклеивании .aspx расширения контроллера.
Так как Вы не можете изменить настройки IIS для отображения .mvc на ASP.NET, можно использовать различное расширение, это уже отображается на ASP.NET. Например, Вы могли использовать {контроллер} .ashx/{действие}, и это должно работать из поля над IIS 6.
Вы не должны жить с тем расширением, если можно установить фильтр ISAPI на сервере.
В основном Вы направляете подобранные URL к {контроллер} .mvc разнообразие, затем в ASP.NET, Вы переписываете этот URL для удаления .mvc - выполнение этого, Вы не должны определять дополнительные маршруты или представлять .mvc Вашим пользователям.
я записал об этом здесь: http://www.flux88.com/UsingASPNETMVCOnIIS6WithoutTheMVCExtension.aspx
и Steve Sanderson имеет хорошее сообщение здесь также: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/
С IIS6 можно сделать одну из двух вещей:
Since не доступна на большинстве веб-хостов, необходимо пойти для номера 2.
У меня есть подробное пошаговое руководство, но это требует, чтобы Вы использовали isapi_rewrite. Просмотрите его в: http://biasecurities.com/blog/2008/how-to-enable-pretty-urls-with-asp-net-mvc-and-iis6/
Как упоминалось в этой записи блога Фила Хака, можно настроить URL-адреса без расширений для ASP.NET MVC в IIS 6, используя сопоставления приложений с подстановочными знаками :
Однако, как также упоминал Хак, это может сказаться на производительности.
Перезапись URL-адресов может помочь вам решить проблему. Реализовал решение, позволяющее развернуть приложение MVC в любой версии IIS даже при использовании виртуального хостинга. http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx
У меня есть образец приложения на IIS6.
Я нашел быстрое и грязное решение. (Грязно, потому что он содержит имя представления по умолчанию с расширением) Он не требует дополнительного маршрута или чего-то особенного. (За исключением того, что ваш маршрут по умолчанию должен иметь формат {controller} .aspx / {action} ...)
Здесь default.aspx
<%@ Page Language="C#"%>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
HttpContext.Current.RewritePath("~/Home.aspx/index");
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
}
</script>
Действие по умолчанию для моих примеров приложений было index в домашнем каталоге.
Примечание: я видел этот код в блоге Фила Хаака. Спасибо Брайану Лоу.