2016-03-17 3 views
0

У меня есть следующее, и я получаю 404 на submit, но от скрипача я получаю 500 ошибок о том, что у вас нет антифригиоценок. Любые мысли, что может быть неправильным?действие для ajax.beginform метать 404 из приложения mvc не из fiddler

ShareController.cs код

// creates the form 
[HttpPost] 
public ActionResult ShareVideoFormEmail(string vguid) 
{ 
    var shareModel = GetShareVideoFormEmailModel(vguid); 

    return PartialView("ShareVideoFormEmail", shareModel); 
} 
// handler function 
[HttpPost] 
[ValidateHoneyPot] 
[ValidateAntiForgeryToken] 
public ActionResult ProcessShareVideoFormEmail(ShareVideoEmailModel model) 
{ 
    //do stuff 
    return PartialView("Result"); 
} 

ShareVideoFormEmail.cshtml

@model Gcc.GctWebsite.Areas.Forms.Models.Share.ShareVideoEmailModel 

@using (Ajax.BeginForm("ProcessShareVideoFormEmail","share",null ,new AjaxOptions 
{ 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "shareVideoFormWithMyFriends", 
    OnBegin = "onBeginShareEmail", @* show ajaxspinner *@ 
    OnComplete = "onCompleteShareEmail", @* hide ajaxspinner *@ 
    OnSuccess = "onSuccessShareEmail" @* hide ajaxspinner *@ 
}, new { id = "shareVideoEmailModelForm" })) 
{ 
<div class="modal-header"> 
     <div class="modal-header-title">Share the video &quot;@ViewBag.VideoTitle&quot; with my friends</div> 
</div> 
<div class="modal-body"> 
    <div id ="shareVideoFormWithMyFriends" class="share-form-email"> 
     @Html.AntiForgeryToken() 
     @Html.HoneyPot() 
     @Html.HiddenFor(x => x.UpdateTargetId) 
     @Html.HiddenFor(x => x.OgMetaTitle) 
     @Html.HiddenFor(x => x.OgMetaDescription) 
     @Html.HiddenFor(x => x.OgMetaDefaultImage) 
     @Html.HiddenFor(x => x.OgMetaImage) 
     @Html.HiddenFor(x => x.Brand) 
     @Html.HiddenFor(x => x.VGuid) 
     @Html.HiddenFor(x => x.TripCode) 
     @Html.HiddenFor(x => x.EmailSubject) 
<!-- big section of input fields for model properties --> 
<div class="form-field"> 
    <span class="req-lbl">* = Required</span> 
</div> 
<div class="form-field form-submit"> 
    <input class="btn btn-main-theme btn-narrow btn-submit-form" value="Send Email" type="submit"> 
    <input type="reset" class="btn btn-grey btn-reset cancel-share-Email" value="Cancel"> 
</div> 
<script> 
$(document).ready(function (e) { 
    $('.required-input').after("<span class=\"rqdfield\">*</span>"); 
    loadJqueryValidationManually("#shareVideoEmailModelForm"); 
}); 
</script> 
+0

Почему 'ShareVideoFormEmail (строка vguid)' украшен атрибутом '[HttpPost]', если это действие получает только информацию и не изменяет состояние вашего сайта? – Balde

+0

Вам не хватает тесного фигурного скобка '@ using'? – Balde

ответ

0

Оказывается, что в моей модели в некоторых из данных не было некоторых HTML-нет-х. Я должен был htmlencode пару свойств перед отображением представления, тогда он работал отлично после обратной передачи. Я обнаружил это, изменив входной параметр метода действия на объект и удалив проверку honeypot и xsfr. Затем я получил хорошую ошибку 500, объяснив, что у меня есть небезопасные данные.