如何将带有jquery值的字符串从模型传递到视图

时间:2015-02-03 14:43:10

标签: jquery asp.net-mvc

我必须捕获文本框值并显示在从模型生成的div中。

例如:我需要显示" textbox1"值或" textbox2"基于逻辑。这样我就可以从ajax调用中附加文本。

下面是c#语句

return "Expected value is \"+$('#txtAMC').val();

当我将此值附加到div $('#div1').html(result);时,显示如下

Expected value is "+$('#txtAMC').val()

但我希望结果为

  

预期值为文本框值

任何正文都可以帮助我如何将文本传递给ajax调用。提前谢谢。

的Javascript

$.ajax({ 
    url: '/XMLCorrections/XMLCorrections/GetUserInput', 
    type: 'POST', 
    dataType: 'json', 
    contentType: "application/json; charset=utf-8", 
    success: function (result) { 
        $('#div1').html(result)
}); 

c#中

public string GetUserInput() {
    // some Logic return "Expected value is \"+$('#txtAMC').val(); 
}

3 个答案:

答案 0 :(得分:1)

您可以设置"数据" ajax帖子中的属性。 你可以做类似的事情 -

var txtBoxText = $('#txtAMC').val()
var data = {"passedValue":txtBoxText}

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

然后在服务器上使用此值执行任何操作并返回值。

请澄清我是否没有问题。

答案 1 :(得分:0)

根据我的理解,你在回调中得到了这个结果

result = "Expected value is $('#txtAMC').val()";

你想要的是

result = "Expected value is blah";

其中$('#txtAMC').val() === "blah"

您拥有的最佳选择是将GetUserInput的返回值更改为您需要的文本框的ID

return "txtAMC";

现在,在成功回调中,您可以根据自己的需要进行更改

var resultValue = $("#" + result).val();
$('#div1').html("Expected value is " + resultValue);

答案 2 :(得分:0)

我尝试拆分函数并创建一个匿名函数然后我迭代了该函数。通过这个逻辑,我实现了我想要的输出。

var splitedData=data.split('+');
var formateText= function(val){ 
  try{
      var fun=new Function('return '+ val); return fun()
     } 
  catch(e){
     return val
     }
}

 var resultedData="";for(var i=0;i<splitedData.length;i++){
       resultedData+=formateText(splitedData[i]);
       }

如果有任何简单的解决方案,请提供。