javascript - 使用ajax将数据从文本框发送到asp.net mvc 5 Controller

标签 javascript c# jquery ajax asp.net-mvc

我需要一些帮助。我使用带有 JavaScript、jQuery、Ajax 的 ASP.NET MVC5 编写小应用程序......我无法将数据从 javascript 发送到 MVC Controller 并更改模型。

View 模型

public class MyViewModel
{
//...
    public string SearchString { get; set; }
    public int? FirstInt { get; set; }
    public int? SecondInt { get; set; }
}

Javascript

    function keystroke() {
        var a = 0, b = 0;
        $('#search').keyup(function (event) { a = 1; });

        $('#search').keydown(function (event) { b = 1; });

        $("#search").keypress(function (event) {
            if (e.which === 13) {
                e.preventDefault();
                $('form').click(function () {
                    sendForm(a, b);
                });
            }
        });
    };
    function sendForm(a, b) {
        $.ajax({
            url: @Url.Action("Index", "Home"),
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify({
                FirstInt: a,
                SecondInt: b
            }),
            success: function () {
                alert('success');
            }
        });
    };

查看

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "form-inline", role = "form" }))
            {
                <div class="form-group has-feedback">
                    @Html.TextBox("SearchString", ViewBag.SearchFilter as string, new
            {
                @class = "form-control",
                onclick="keystroke()",
                id = "search"
            })
                </div>
            }

Controller

public async Task<ActionResult> Index(MyViewModel model)
        {
            //...
            if (model.SearchString != null)
            {
                //...
                var a = model.FirstInt;
                var b = model.SecondInt;
            }
            //...
            return View(model);
        }

请帮我把所有的值发送给 Controller 。那些在 JavaScript 中更改的以及我在文本框中输入的内容。谢谢。

最佳答案

Javascript 代码:

function keystroke() {
var a = 0, b = 0;
    $('#search').keyup(function (event) { a = 1; });

    $('#search').keydown(function (event) { b = 1; });

    $("#search").keypress(function (event) {
        if (e.which === 13) {
            e.preventDefault();
            $('form').click(function () {
                var text = $("#search").val()
                sendForm(a, b, text);
                return false;
            });
        }
    });

};
function sendForm(a, b, text) {
    var data = {FirstInt: a,SecondInt: b,SearchString: text}
    $.ajax({
        url: 'Home/Index',
        type: 'POST',
        contentType: 'application/json',
        data: data,
        success: function () {
            alert('success');
        }
    });
};

Controller 代码

[HttpPost]
public async Task<ActionResult> Index(MyViewModel model)
    {
        //...
        if (model.SearchString != null)
        {
            //...
            var a = model.FirstInt;
            var b = model.SecondInt;
        }
        //...
        return View(model);
    }

关于javascript - 使用ajax将数据从文本框发送到asp.net mvc 5 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30459261/

相关文章:

javascript - chrome extension api是否支持直接从浏览缓存下载?

C#protobuf-net反序列化某些属性值时始终为-1

javascript - 谷歌分析异步 : Events Tracking Callback?

javascript - 我应该在执行 pushState 时更新所有 href 和 src 吗?

javascript - 交叉口观察器不适用于位置为 : fixed 的目标

javascript - 将 Treant.js 合并到 Vue.js 应用程序中

c# - 为什么 'JavaScript' 或 'JavaScriptResult' 是反模式?

c# - 控制台应用程序中的 WriteableBitmapEx?

javascript - 将类/对象->function() 调用插入到 onsubmit 事件中

javascript - 使用 list v3 将谷歌分析添加到 chrome 扩展中