Asp.net将jQuery变量传递给C#函数
我在Asp.Net中的razor视图中找到了以下代码:Asp.net将jQuery变量传递给C#函数,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我在Asp.Net中的razor视图中找到了以下代码: @section MyScripts { <script type="text/javascript"> $("button").click(function () { var myVariable = this.id; @{ var Line1 = "Software"; var Gruppe2 = Model.Where(x =
@section MyScripts {
<script type="text/javascript">
$("button").click(function () {
var myVariable = this.id;
@{
var Line1 = "Software";
var Gruppe2 = Model.Where(x => x.Line1 == "Software").GroupBy(v => v.Line2).ToList();
}
});
</script>
}
@节MyScripts{
$(“按钮”)。单击(函数(){
var myVariable=this.id;
@{
var Line1=“软件”;
var Gruppe2=Model.Where(x=>x.Line1==“软件”).GroupBy(v=>v.Line2.ToList();
}
});
}
如您所见,myVariable通过jQuery从“button click事件”接收id
所以我们可以说变量值是“软件”
如何将此变量传递给jQuery中的c代码?向click事件添加一个Ajax调用,该调用执行MVC操作的POST/GET,如下所示:
$.ajax({
async: false,
cache: false,
url: '@Url.Action("MyAction", "MyController")',
type: 'GET',
dataType: 'json',
data: myJsonString }
);
您的操作将只返回json(或部分视图,取决于返回类型)
您需要理解客户端代码和服务器端代码之间的区别。您正在寻找AJAX。谢谢您的回答。那么这是怎么回事呢?我会通过AJAX将变量发送到我的控制器,并返回一个新视图?问题是我不想重新加载整个视图@Slaks你需要使用AJAX并获取JSON值。但是我必须重新加载我的整个站点,或者?啊,好吧,我现在就知道了。我明天会试试,如果有用的话会给你反馈!!感谢lotNo,通常您希望返回一个json字符串,然后使用jQuery更改您的UI。例如,传递一个状态ID,获取状态描述,然后将其添加到下拉式客户端。不要使用
async:false
。
[HttpGet]
public JsonResult MyAction()
{
string result = [some model data]
var json = Json(result, JsonRequestBehavior.AllowGet);
return json;
}