2016-04-05 19 views
1

Bir web sitesinde başka bir yerde bulunan çeşitli CRUD eylemlerini işlemek için kalıcı diyaloglar içinde kısmi sayfaları kullanıyorum ve iyi çalışıyor, girişte (aşağıda gösterilen) her şeyi aynısını yaptım, ancak HttpPost actionresult içinde denetleyici vurulmuyor ve neden emin değilim.HttpPost ActionResult Denetleyicide

Bunun yerine HttpGet çağrılıyor.

Neleri özledim?

Girişi kısmi

@model Models.User 
<script language="Javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script language="Javascript" type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $('#btn-login').click(function() { 
      $('#modal-container').modal('hide'); 
     }); 
     $('#btn-close').click(function() { 
      $('#modal-container').modal('hide'); 
     }); 
    }); 
</script> 

<div class="login-container"> 
    @using (Html.BeginForm()) 
    {   
     @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
     <div class="login-table"> 
      <div> 
       @Html.LabelFor(m => m.Username) 
       @Html.TextBoxFor(m => m.Username) 
       @Html.ValidationMessageFor(m => m.Username, "", new { @class = "text-danger" }) 
      </div> 
      <div> 
       @Html.LabelFor(m => m.Password) 
       @Html.PasswordFor(m => m.Password) 
       @Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" }) 
      </div> 
     </div> 
     <div> 
      <button type="submit" id="btn-login" class="btn btn-sm">Login</button> 
      <button type="button" class="btn btn-default modal-close-btn" data-dissmiss="modal">Cancel</button> 
     </div> 
    } 
</div> 

Hesap Kontrolörü Giriş Eylem Yöntemleri

[AllowAnonymous] 
[HttpGet] 
public ActionResult Login() 
{ 
    return PartialView("Login"); 
} 

[HttpPost] 
public ActionResult Login(User model) 
{ 
    if(ModelState.IsValid) 
    { 
     // do stuff 
    } 
    return RedirectToAction("Index", "Announcements"); 
} 
+2

'[AllowAnonymous]' POST yöntem [AllowAnonymous] ile işaretlenmiş olmalıdır POST, yani [Authorize] ile işaretlenmiştir ? –

+0

Ekle Giriş ([FromBody] Kullanıcı modeli) –

+0

@StephenMuecke teşekkürler! Tuhaf bir şekilde başka bir oturum açma uygulamasına gerek yoktu, ancak bunu sıraya dizdim, teşekkürler! – PurpleSmurph

cevap

2

formu özelliğinde bu deneyinöne denetleyicisi Eğer yöntem, aynı zamanda (bu yöntemde kodu yürütülür kadar kullanıcı yetki)

[HttpPost] 
[AllowAnonymous] 
public ActionResult Login(User model) 
{ 
    if(ModelState.IsValid) 
    { 
     // do stuff 
    } 
    return RedirectToAction("Index", "Announcements"); 
} 
-1

Kişisel GET yöntemiile işaretlenmiştir

@Html.BeginForm("Login", "Home", , new { modal= Model }, FormMethod.Post) 

//Login- action Name that has to be hit 

//Home  - Controller name 
+0

Varsayılan işlem "POST" işlevidir, bu yüzden bu yanlıştır ve yardımcı olmaz. – DavidG

İlgili konular