Я новичок на форуме, а также довольно новичок в MVC.У меня есть приложение MVC, которое работает нормально во время тестирования в моей локальной среде разработки, но при развертывании на IIS7 у меня возникают некоторые проблемы, одна из которых заключается в том, что я получаю ошибку 404 при вызове действия из контроллера, передающего параметры в строку запроса,"?"и "=" кодируются IIS, и я полагаю, что это причина сбоя вызова.Действие моего контроллера:
public ActionResult CreateMenu()
{
MenuModel.MenuItem menuItem;
MenuModel.MenuItem childItem;
if (AuthenticationService.IsUserAuthenticated())
{
string u_id = AuthenticationService.GetAuthenticatedUserName();
Role u_role = Repository.GetUserRole(u_id);
mainMenu.MenuItems.RemoveAt(0);
if ((u_role.Role_Desc == "Administrator") || (u_role.Role_Desc == "Manager"))
{
int lastMenuNumber = mainMenu.MenuItems.Count;
menuItem = new MenuModel.MenuItem(++lastMenuNumber, "Account Settings", "", "");
childItem = new MenuModel.MenuItem(++lastMenuNumber, "Log Report", "LogReporting", "ShowLog");
menuItem.ChildItems.Add(childItem);
childItem = new MenuModel.MenuItem(++lastMenuNumber, "User Permissions", "PermissionsSetting", "ListPermissions");
menuItem.ChildItems.Add(childItem);
mainMenu.MenuItems.Insert(0, menuItem);
}
// list of accessible BGs for selected client
var selectedClient = Session["client_Id"] != null ?
Repository.GetClientById((short)Session["client_Id"]) :
Repository.GetUserClients(u_id).First();
int i = 0;
var bgs = Repository.GetUserClientAccesibleBusinessGroups(u_id, selectedClient.Client_ID);
if (bgs.Count() > 0)
{
foreach (var bg in bgs)
{
menuItem = new MenuModel.MenuItem(mainMenu.MenuItems.Count + 1, bg.BG_Desc, "FtpAccess", String.Format("Group/{0}?cbg={1}", selectedClient.Client_ID, bg.Client_BG_ID));
mainMenu.MenuItems.Insert(i++, menuItem);
}
}
}
ViewData.Model = mainMenu;
return View();
}
Используется в частичном представлении <% Html.RenderAction ("CreateMenu", "Menu");%> в главном представлении, которое отображается правильно, но при щелчке по элементу возникает ошибка 404.Одна вещь, которую я изменил в web.config, это настройки для: requestValidationMode = "2.0" requestPathInvalidCharacters = "", потому что я получаю сообщение об ошибке: потенциально опасное значение Request.Path было обнаружено клиентом (?) После добавления этихнастройки ошибка Request.Path исчезают, но теперь я получаю 404.
Любая помощь.Спасибо.