【问题标题】:Post a string to mvc将字符串发布到 mvc
【发布时间】:2023-04-09 09:09:01
【问题描述】:

我已经了解了如何序列化为 JSON 中的对象。如何发布返回 ViewResult 的字符串?

            $.ajax({
                url: url,
                dataType: 'html',
                data: $(this).val(), //$(this) is an html textarea
                type: 'POST',
                success: function (data) {
                    $("#report").html(data);
                },
                error: function (data) {
                    $("#report").html('An Error occured.  Invalid characters include \'<\'. Error: ' + data);
                }
            });

MVC

   [HttpPost]
    public ActionResult SomeReport(string input)
    {
        var model = new ReportBL();
        var report = model.Process(input);
        return View(report);
    }

【问题讨论】:

标签: c# jquery asp.net-mvc-3


【解决方案1】:

怎么样:

        $.ajax({
            url: url,
            dataType: 'html',
            data: {input: $(this).val()}, //$(this) is an html textarea
            type: 'POST',
            success: function (data) {
                $("#report").html(data);
            },
            error: function (data) {
                $("#report").html('An Error occured.  Invalid characters include \'<\'. Error: ' + data);
            }
        });

如果您将 data 设为 JSON 对象,其键与参数名称匹配,则 MVC 应该选择它。

在 MVC 方面...

[HttpPost] 
public ActionResult SomeReport() 
{ 
    string input = Request["input"];
    var model = new ReportBL(); 
    var report = model.Process(input); 
    return View(report); 
} 

【讨论】:

【解决方案2】:

您可能希望以 json 格式返回结果。不知道如何用 asp.net 准确地做到这一点,但如果是 Rails,那就是return @foo.to_json

【讨论】:

    【解决方案3】:

    您需要添加一个contentType。查看 jQuery API:

    http://api.jquery.com/jQuery.ajax/

    【讨论】:

      【解决方案4】:

      您可以在您的操作方法中使用 [FromBody] 属性,它指定应使用请求正文绑定参数或属性。

      [HttpPost]
      public ActionResult SomeReport([FromBody] string input)
      {
          var model = new ReportBL();
          var report = model.Process(input);
          return View(report);
      }
      

      【讨论】:

        猜你喜欢
        • 2018-09-20
        • 1970-01-01
        • 1970-01-01
        • 2021-03-21
        • 2015-10-07
        • 1970-01-01
        • 1970-01-01
        • 2016-08-02
        • 2017-09-10
        相关资源
        最近更新 更多