2011-12-06 13 views
0

私はMVC3で次のアクション/コントローラいる:MVC3 CKEditorバージョンとAjax問題

public class ItemResponsesVM 
    { 
     [Display(Name = "Message")] 
     [Required(ErrorMessage = "Message is required")] 
     [StringLength(250, ErrorMessage = "Please add a maximum of 250 chars")] 
     public string Message 
     { get; set; } 
    } 

一方のために、私がすべきこのAJAX呼び出しを持っている:

[HttpPost] 
    public ActionResult AX_AddItemResponse(ItemResponsesVM response) 
    { 
     return View(response); 
    } 

これは、使用してイムのviewmodelです上記のアクションに進みます:

$(document).ready(function() { 
    var form=$("#MyForm"), 
    $("#Submitbutton").click(function() { 

     $('#Message').each(function() { 
      var $textarea = $(this); 
      $textarea.val(CKEDITOR.instances[$textarea.attr('name')].getClearText()); 
     }) 
     , 
     $.ajax({ 
      type: "POST", 
      url: "@(Url.Action("AX_AddItemResponse","Responses"))", 
      data: form.serialize(), 
      success: function() { 
       alert("AllGood"); 
      } 
      , 
      error:function() 
      { 
       alert("AllBad"); 
      } 
     }); 
    }); 

}); 

私はCKEditorを使用してid = "Message"要素、問題はです。ItemResponsesVMのインスタンスで説明されているアクションに到達するために、というフォームをシリアル化する方法はわかりません。 、

data: form.serialize() 

ちょうどそれは、このような<など危険な文字が含まれている場合は、要求を拒否することがあります[AllowHtml]属性やASP.NETランタイムを使用してMessageプロパティを飾ることを確認してください。

答えて

2

はすでに正しくフォームをシリアル化しています>、...:

public class ItemResponsesVM 
{ 
    [Display(Name = "Message")] 
    [Required(ErrorMessage = "Message is required")] 
    [StringLength(250, ErrorMessage = "Please add a maximum of 250 chars")] 
    [AllowHtml] 
    public string Message { get; set; } 
} 

はまた半でなければなりません$.ajax呼び出しの前に、いくつかのカンマ(,)があるように思われますコロン(;)。

+0

ありがとうございました:-) – Jose3d

+0

@ Jose3d、はい、次回FireBugのようないくつかのjavascriptデバッグツールを使用してください.AJAX呼び出しに関するすべての情報と失敗する理由がわかります。 –

関連する問題