如何解决此问题,我的以下代码无法正常工作

时间:2019-06-25 08:55:21

标签: c# ajax post model-view-controller

我正在尝试发布数据,并尝试从控制器返回并再次返回并显示在警报框中,但不知道为什么这不起作用

这是控制器代码

 [HttpPost]
        public ActionResult getRequirmentsByProject(string projectname)
        {

            return Json(projectname, JsonRequestBehavior.AllowGet);
        }

这是我的前端代码

<input id="projName" type="text" name="Name" required="" value="javascript">

这是我的脚本代码

 var projectname = document.getElementById('projName').value;
    $.ajax({
        url: '/Worksheet/getRequirmentsByProject',
        type: 'post',
        data: { projectname },
        contentType: 'application/json; charset=utf-8',
        success: function (html) {
            alert(html);
        },
        error: function (error) {
            $(that).remove();
            DisplayError(error.statusText);
        }
            });

2 个答案:

答案 0 :(得分:0)

在您的情况下,我给您提供一个简单的示例,说明如何使用AJAX将POST的表单变量<script type="text/javascript"> var projectname = document.getElementById('projName').value; var json = { projectname: projectname }; $.ajax({ url: '@Url.Action("getRequirmentsByProject", "Worksheet")', type: 'post', dataType: "json", data: { "json": JSON.stringify(json)}, success: function (data) { alert(data); }, error: function (error) { $(that).remove(); DisplayError(error.statusText); } }); </script> 发送到控制器:

using System.Web.Script.Serialization;

[HttpPost]
public ActionResult getRequirmentsByProject(string json)
{

        var serializer = new JavaScriptSerializer();
        dynamic jsondata = serializer.Deserialize(json, typeof(object));

        //Get your variables here from AJAX call
        string projectname= jsondata["projectname"];    

    return Json(projectname);
}

在您的控制器中,您可以通过以下方式获得此值:

var textarea = document.querySelector('textarea');

textarea.addEventListener('keydown', autosize);
             
function autosize(){
  var el = this;
  setTimeout(function(){
    el.style.cssText = 'height:auto; padding:0';
    // for box-sizing other than "content-box" use:
    // el.style.cssText = '-moz-box-sizing:content-box';
    el.style.cssText = 'height:' + el.scrollHeight + 'px';
  },0);
}

答案 1 :(得分:-1)

其httpget和错误的编写方式

[HttpGet]
        public ActionResult getRequirmentsByProject(string projectname)
        {

            return Json(projectname, JsonRequestBehavior.AllowGet);
        }

这是感谢您指出的正确方法