2016-08-17 11 views
0

У меня вопрос onde, в моем коде выше два первых страницы работают идеально, но на последней странице отображается только одна страница с одной строкой с спецификой кода. Мне нужна помощь!!html actionlink attributes

@if (((RegisteredUser)Session["User"]).IsExpert) 
{ 
<li>@Html.ActionLink("Área técnica", "Index", "Dashboard", new { area = "Expert" }, null)</li> 
} 
@if (((RegisteredUser)Session["User"]).IsServiceDeskAdmin) 
{ 
<li>@Html.ActionLink("Área de administração", "Index", "Dashboard", new { area = "Administration" }, null)</li> 
} 
@if (((RegisteredUser)Session["User"]).IsExpert) 
{ 
<li>@Html.ActionLink("Perfil", "Index", "PerfilController", new { area = "Perfil" }, null)</li> 
} 

Приведенный выше код .cs. Благодаря

 using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Net; 
    using System.Net.Http; 
    using System.Web; 
    using System.Web.Mvc; 

    namespace Fcebi.ServiceDesk.WebPlatform.Controllers 
    { 
     public class PerfilController : Controller 
     { 

    // GET: Perfil 
    protected override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     base.OnActionExecuted(filterContext); 
     Fcebi.ServiceDesk.WebPlatform.Areas.Expert.ExpertAuth.DoAuth(Session, Request, filterContext, Url); 
    } 
    public ActionResult Index(String Id) 
    { 
     // Id = api da tabela User 
     Id = "Id7dkSro7Qh"; 
     if (String.IsNullOrEmpty(Id) || String.IsNullOrWhiteSpace(Id)) 
     { 
      return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest, "O ID do utilizador tem de ser definido"); 
     } 
     else 
     { 
      try 
      { 

       RegisteredUser U = RegisteredUser.FindByAPI(Id); 

       var JsonToReturn = new 
       { 
        Name = U.Name, 
        Departamento = U.Department, 
        Email = U.Email, 
        signature=U.Signature 
       }; 
       return Json(JsonToReturn, JsonRequestBehavior.AllowGet); 
      } 

      catch (ServiceDeskException Ex) 
      { 
       return new HttpStatusCodeResult((int)Ex.ErrorId, Ex.Message); 
      } 
      catch (Exception Ex) 
       { 
       new ServiceDeskException(ServiceDeskException.ErrorList.OTHER, Ex); 
       return new HttpStatusCodeResult(System.Net.HttpStatusCode.InternalServerError, Ex.Message); 
       } 

      } 
     } 
    } 
    } 
+0

Ваша формулировка не ясна. Вы имеете в виду, что _link_ не отображается должным образом, или страница, отображаемая нажатием на ссылку, не отображается правильно? Я понятия не имею, что вы подразумеваете под «только одной строкой с спецификой кода». – ADyson

+0

Ссылка не работает на 100%, страница не перенаправляется, и когда я заставляю ссылку перейти на страницу, появляется только строка информации с пользовательской информацией, и я хотел бы показать хорошо сконфигурированную страницу, скопировать и вставить код страниц, которые работают, и таким образом изменили переменные и что я хотел показать –

+0

, как выглядит визуализированный html actionlink? Соответствует ли это реальному контроллеру и действиям в вашем приложении? – ADyson

ответ

1

Попробуйте изменить

@Html.ActionLink("Perfil", "Index", "PerfilController", new { area = "Perfil" }, null) 

в

@Html.ActionLink("Perfil", "Index", "Perfil", new { area = "Perfil" }, null) 

Я не думаю, что вы должны быть добавление "Controller" - MVC будет работать его.

Во-вторых, ваш индексный метод .cs возвращает JSON. Поэтому, если вы перейдете к этому действию в браузере, вы просто увидите JSON как текст. Он не возвращает веб-страницу. Итак, то, что вы делаете, создавая ссылку на него, не имеет большого смысла - похоже, что он предназначен для вызова через Ajax.

+0

он перенаправляется на другую страницу. –

+0

@ThiagoSchettiniMari Не понимаю. «он перенаправляется на другую страницу»? Кто это сделал? Куда он перенаправлялся? Постскриптум повторю ваш другой комментарий, я не выдаю свой адрес электронной почты незнакомцам, со всем уважением, извините. Возможно, вставьте в PerfilController.cs метод Index в ваш вопрос. Также будет полезной конфигурация вашего маршрута. И, наконец, снова я попрошу увидеть _rendered HTML_, что ActionLink превращается в :-) – ADyson

+0

, который был моим кодом в индексе. @ { ViewBag.Title = "Perfil"; Layout = "~/Views/Shared/_Layout.cshtml"; ServiceDeskConfig Config = новый ServiceDeskConfig(); RegisteredUser User = (RegisteredUser) Session ["Пользователь"]; }

Dados do Utilizador @User.Name