2013-11-19 2 views
1

이보기에 대한 작업을 제출하면 브라우저가 로그인 페이지로 리디렉션됩니다 !!리디렉션 로그인 후 페이지 제출 MVC4에서

도 인증 된 사용자

(mvc4-vs2012-simplemembership)

보기 위해 :

.... 
@using (Html.BeginForm("Create", "Comment")) 
{ 
    <fieldset> 
     <div class="container"> 
      <div class="row-fluid"> 
       <div class="span8"> 
        @if (WebSecurity.IsAuthenticated) 
        { 
         <div class="iran text-success"> 
          <i class="icon-user"></i> 
          username:<span>@WebSecurity.CurrentUserName</span> 
         </div> 
         <div class=""> 
          <input type="hidden" name="ArticleId" /> 
         </div> 
         <div class="controls"> 
          @Html.TextArea("Description", new { @Class = "span6", @Rows = 4 }) 
         </div> 
         <div class="controls"> 
          <span class="span4"> 
           <p> 
            <input type="submit" class="btn btn-primary" value="submit comment" /> 
           </p> 
          </span> 
         </div> 
        } 
        else 
        { 
         <div class="iran"> 
          @Html.ActionLink("you must first log in", "LoginUser", "Account") 
         </div> 
        } 
.... 

컨트롤러 :

[HttpPost] 
public ActionResult Create(FormCollection form) 
{ 
    try 
    {  
     var ins = new Comment(); 
      ins.Description = form["Description"]; 
      ins.ArticleId = Convert.ToInt16(form["ArticleId"]); 
      ins.DateSend = Shamsi(); 
      ins.TimeSend = DateTime.Now.ToString("HH:mm:ss"); 
      ins.UserId = WebSecurity.CurrentUserId; 
      bank.Comments.InsertOnSubmit(ins); 
      bank.SubmitChanges(); 

     return RedirectToAction("Index","Home"); 
    } 
    catch { return null;} 
} 

답변

0

당신은 당신의 코드에 오류가 있습니다. 숨겨진 필드 "ArticleId"는 null이므로 int로 캐스트 할 수 없습니다. 이 오류 메시지는 try-catch 블록에서 삼켜지고 있으며 사용자는이를 관찰하거나 알림을받지 못하고 있습니다. 이 문제가 해결되면 추가 문제가있을 수 있습니다. 디버깅하는 동안 try-catch를 제거하는 것이 좋습니다. 또한 "ModelState"를 검사하여 저장하기 전에 모든 필드를 입력했는지 확인하는 등 올바른지 확인하는 것이 좋습니다.

+0

나는 ActionResult Create (Comment Controller)의 첫 번째 줄 정의에 중단 점 넣기 및 그 컨트롤러가 주석 컨트롤러로 리디렉션되지 않음을 알았습니다 !! –

+0

컨트롤러에 사용자가이 방법에 액세스하지 못하도록하는 권한 부여/인증 필터가 있습니까? 컨트롤러 및/또는 액션 레벨에서 필터를 지정할 수 있습니다 ... "[Authorize]"로 보일 수 있습니다. – laylarenee

+0

아니요 ... [Authorize] 필터를 사용하지 않았습니다. –