Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
MVC4将文本框值传递给jquery对象_Jquery_Asp.net Mvc 4_Textbox_Parameter Passing - Fatal编程技术网

MVC4将文本框值传递给jquery对象

MVC4将文本框值传递给jquery对象,jquery,asp.net-mvc-4,textbox,parameter-passing,Jquery,Asp.net Mvc 4,Textbox,Parameter Passing,抱歉,又是我,还是那个数据过滤器的家伙,但现在有一个不同的问题:) 我似乎不能做一件简单的事 var datafilterModel = @Html.Raw(Json.Encode(new DataFilterModel("CustomerName", "string", "Mehdy"))) // This works perfect 现在我想从textbox传递值,而不是硬编码。我该怎么做?我尝试了以下操作,但出现错误: var datafilterModel = @Html.Raw(Js

抱歉,又是我,还是那个数据过滤器的家伙,但现在有一个不同的问题:)

我似乎不能做一件简单的事

var datafilterModel = @Html.Raw(Json.Encode(new DataFilterModel("CustomerName", "string", "Mehdy"))) // This works perfect
现在我想从textbox传递值,而不是硬编码。我该怎么做?我尝试了以下操作,但出现错误:

var datafilterModel = @Html.Raw(Json.Encode(new DataFilterModel("CustomerName", "string", $('#textFilterValue').val()))) // Too many characters in the literal

任何人都可以为我节省时间,因为您正在使用服务器端帮助程序生成
datafilterModel
javascript变量的值,所以您只能在服务器上呈现页面时传递文本框的值。如果用户后来出于明显的原因更改了该值(正如在前面的问题中向您解释的),您将只需要使用javascript来操作该变量的值,而不需要依赖任何服务器端帮助程序。因此,假设此文本框绑定到某个模型值:

@Html.TextBoxFor(x => x.TextFilterValue)
然后可以按如下方式传递值:

var datafilterModel = @Html.Raw(
    Json.Encode(
        new DataFilterModel("CustomerName", "string", Model.TextFilterValue)
    )
);
var datafilterModel = { "Foo": "Bar", "Baz": "Bazinga" };
如果要实现对文本框值的动态绑定,必须使用javascript。例如,您可以订阅此文本框的
onchange
事件,然后操作值:

$('#textFilterValue').change(function() {
    var filterValue = $(this).val();
    // here you can update the value of the datafilterModel javascript variable
});
更新
datafilterModel
变量的方式将取决于其结构。例如,如果这是一个如下所示的javascript对象:

var datafilterModel = @Html.Raw(
    Json.Encode(
        new DataFilterModel("CustomerName", "string", Model.TextFilterValue)
    )
);
var datafilterModel = { "Foo": "Bar", "Baz": "Bazinga" };
如果要更新要使用的
Baz
属性的值,只需为其指定新值:

$('#textFilterValue').change(function() {
    var filterValue = $(this).val();
    datafilterModel.Baz = filterValue;
});