Я понял, как решить эту проблему, добавив foreach в каждом раскрывающемся списке полей. Спасибо @HastaDhana за то, что нашли время ответить на мой вопрос:)
Я решил проблему, главной проблемой были различные версии платформы MVC. Рабочий сервер имел Бету MVC, в то время как я установил MVC RC1. Таким образом, как только я установил RC1 на сервере, а также запустил mvc дополнительные регистрационные скрипты, все работало спасибо за Ваших парней справки
Вы также получите пустую страницу, когда у Вас будет установка обработки ошибок в Вашем global.asax, и что-то универсальное является неправильным (как блок, который не мог быть найден).
при отключении его в global.asax Вы видите ошибку сервера. Не забывайте включать его снова после исправления тех начальных ошибок.
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
RouteData routeData = new RouteData();
routeData.Values.Add("controller", "ErrorController");
routeData.Values.Add("action", "HandleTheError");
routeData.Values.Add("error", exception);
Response.Clear();
Server.ClearError();
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(
new HttpContextWrapper(Context), routeData));
}
Какова серверная среда? Если это не IIS7/Server 2008 существуют другие тонкие настройки, которые необходимо сделать, чтобы заставить маршрутизацию работать правильно, хотя, если это так, Вы, вероятно, получили бы ошибочную страницу, не пустую страницу.
Если это - рабочий сервер, который имеет проблему, это - вероятно, разрешения роли. Необходимо удостовериться, что все папки и подают заявку, использует, позволяют читать (и в некоторых случаях записать, регистрируется ли использование) к ролевым идентификационным данным, которые использует IIS.
Обычно идентификационные данные, которые использует IIS, находятся в Свойствах веб-сайта-> Безопасность каталога-> Редактирование (Управление аутентификацией и управление доступом). Если Вы не хотите позволять какому-либо компьютеру в Вашей сети получать доступ к веб-сайту затем, необходимо, вероятно, выключить, "Включают анонимный доступ". Если Вы действительно хотите позволить это, хотя, это будет идентификационными данными, необходимо предоставить доступ к в папках веб-приложения и файлах. Иначе Вы, возможно, должны предоставить доступ к роли, которая содержит пользовательские идентификационные данные, Вы хотите иметь доступ.
От взглядов его я ожидал бы, что первый маршрут работал бы, если бы Вы шли в URL как/Home.aspx, но если Вы просто идете в / URL затем, ASP.net не знает, как обработать URL. Это попытается соответствовать на страницах значений по умолчанию IIS как index.html, default.aspx, index.aspx, и т.д. Если ничто не будет найдено затем, запрос не добирается нигде. Попытка создания default.aspx (или любой другой индексный файл в маршруте), затем в page_load делает response.redirect("~/Home.aspx")
.
, Если бы это не работает, я проверил бы этот источник . Одна из главных причин IIS 6 и MVC не играет по правилам, то, что IIS 6 по умолчанию не имеет подстановочного знака * отображенным на ASP.net dll.
я уверен, что это - способ, которым настроен сервер продукта, можно ли сделать какое-либо сравнение между экземпляром XP и производством?
У Вас есть Обработчики HTTP и Модули определенными в web.config на рабочем сервере?
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
На IIS6, URL должны содержать .mvc (например,/Products.mvc/ListAll). Проверьте эти руководства на надлежащую конфигурацию IIS 6 и .mvc дополнительное обходное решение:
Как другое возможное решение:
я не развертывался в течение приблизительно одного месяца, но обновил свою Visual Studio несколькими незначительными выпусками. Несовместимость вползла промежуточная Основа VS и некоторые мои пакеты Nuget. Обновленный мои пакеты, удостоверился, что убрал (и удалить bin/obj - даже при том, что он первоначально не решил проблему), и затем повторно развернутый. Работавший после этого.