Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Html.Beginform中post类型的Ajax.Actionlink没有将表单的值发送给controllers post方法吗?_C#_Ajax_Asp.net Mvc_Forms - Fatal编程技术网

C# Html.Beginform中post类型的Ajax.Actionlink没有将表单的值发送给controllers post方法吗?

C# Html.Beginform中post类型的Ajax.Actionlink没有将表单的值发送给controllers post方法吗?,c#,ajax,asp.net-mvc,forms,C#,Ajax,Asp.net Mvc,Forms,我有一张表格 <script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script> <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> @using (Html.BeginForm("Index", "Company",Is

我有一张表格

<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

@using (Html.BeginForm("Index", "Company",IsPost))
{
    <div class="input-block-level">@Html.TextBoxFor(m => m.SearchString) 
                                   @Ajax.ActionLink("Submit", "Index", new{@class="btn"},new AjaxOptions {
                                                                                                HttpMethod = "Post",
                                                                                                UpdateTargetId = "partialDiv"
                                                                                             }) 
    </div>


}

<div id="partialDiv"></div>

当在浏览器中单击通过Ajax.Actionlink创建的链接时,我不会在controllers post方法中获得文本框的值。为什么呢?另外,我应该使用Ajax.BeginForm吗?我还没有使用Ajax.BeginForm,有没有关于如何将这个Html.BeginForm转换为Ajax.BeginForm的技巧?

您应该使用Ajax.BeginForm,并将提交更改为正常的提交输入:您尝试过在jQuery中发出请求吗

<div class="container"> 
    @Html.TextBoxFor(m => m.Input, new { @id = "myInput"})
    <input type="submit" value="Submit" class="submit"/>
</div>

@section scripts{
 <script type="text/javascript">
    $('.submit').on('click', function() {
        var searchValue = $('#myInput').val();
        $.ajax({
            type: "POST",
            dataType: 'json',
            url: "/Home/MyMethod",
            data: {data: searchValue},
            success: function(data) {
                console.log();
            }
        });
    });
</script>
}

//Controller

[HttpPost]
public ActionResult MyMethod(string data)
{
   //do something
}