MVC3 CKEditor и Ajax проблема - PullRequest
       4

MVC3 CKEditor и Ajax проблема

0 голосов
/ 06 декабря 2011

У меня есть следующее действие / контроллер на MVC3:

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

Это модель представления, которую я использую:

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, который должен перейти к описанному выше действию:

$(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.

1 Ответ

2 голосов
/ 06 декабря 2011

Вы уже правильно сериализовали форму:

data: form.serialize()

Просто убедитесь, что вы украсили свойство Message атрибутом [AllowHtml], иначе среда выполнения ASP.NET может отклонить запрос, если он содержит опасные символы, такие как <, >, ...:

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 должна быть запятая (,), которая должна быть точкой с запятой (;).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...