将原始html从视图传递给控制器

时间:2013-02-10 11:46:58

标签: asp.net-mvc json jquery asp.net-mvc-4

我想将原始html从视图传递给控制器​​。我试图用jquery ajax请求来做。一切都没问题,直到带有原始html的对象传递给控制器​​。我的错是什么? 这是我的模型,控制器和jquery。

谢谢。

模型

public class NewsEditionModel
{
    public string Title { get; set; }

    public string SubTitle { get; set; }

    public string Text { get; set; }

}

控制器

public ActionResult AddText(NewsEditionModel obj)
    {
        var news = new News();
        try
        {
            news.Text = obj.Text;
            news.PublishDate = DateTime.Now;
            news.Title = obj.Title;
            var repository = new Repository();
            var success = repository.AddNews(news, User.Identity.Name);
            return Json(new {data = success});
        }
        catch (Exception)
        {
            return View("Error");
        }
    }

Jquery的

function submitForm() {
    var text = ste.getContent();
    var title = $('#title').val();
    var obj1 = JSON.stringify({ Text: text, Title: title, SubTitle: "" });
    var obj = $.parseJSON(obj1);
    $.ajax({
        type: "POST",
        dataType: "json",
        content: "application/json",
        data: {obj: obj},
        url: '@Url.Action("AddText", "News")',
        success: function (res) {

        }
    });
}

3 个答案:

答案 0 :(得分:3)

您可以使用此示例

$.ajax({ 
    url: '@Url.Action("AddText", "News")',
    data: {obj: JSON.stringify({ Text: text, Title: title, SubTitle: "" })},
   contentType: 'application/json',
   dataType: 'json',
   success: function (data) { alert(data); }
});

答案 1 :(得分:3)

只需将<ValidateInput(False)> _添加到您的控制器后请求

答案 2 :(得分:1)

我想而不是这个:

data: {obj: obj},

你应该这样做:

data: {obj: JSON.stringify({ Text: text, Title: title, SubTitle: "" })},