如何从视图发送JavaScript字符串到控制器?

时间:2013-05-09 05:24:25

标签: c# session

我在visual studio mvc4 c#中做一个项目,尝试从View中的JavaScript函数向控制器发送一个字符串。我试着像这样使用会话对象:

视图中的

  Session["matStr"] = matrixString; 
控制器中的

  var s = (string)Session["matStr"];  

但是当我到达控制器时,Session会返回null。

所以我很高兴知道答案如何将JS'字符串从视图发送到控制器感谢提前...

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码调用控制器操作

    $('#btnSendData').click(function() {
            //Send batch to the server  
                $.ajax({    
                        type: 'POST',  
                        url: '@Url.Action("SessionUpdate")',
                        contentType: 'application/json; charset=utf-8', 
                        data: JSON.stringify(sessionvalue),    
                        success: function(result) {
                            alert(result);
                        }
                    });
                return false;
            });

此处,SessionUpdate是一个控制器操作,您可以将会话值设置为在sessionvalue变量中发送,并可以获得结果。

答案 1 :(得分:0)

使用输入隐藏字段

<input type="hidden" id="hid1" runat="server"/>

$("#hid1").val("the val from client to server");

然后获取服务器端的值。 我希望那就是你所需要的。(在服务器端使用字符串)。

你也可以使用一些span来设置控制器中的字符串

答案 2 :(得分:0)

您需要为输入添加name。这是MVC用于与POSTS的View和控制器通信的内容。

<input type="hidden" id="hid1" name="hid1"/>

$("#hid1").val("string");

然后在您的控制器操作上,您将其用作参数。

public ActionResult Index(string hid1)
{
    return View()
}