将带有 Ajax 的按钮值发送到 .net 核心中的控制器
Send button value with Ajax to Controller in .net core
我快要发疯了,想弄清楚这个问题。
首先,我正在使用 entity framework 和模型等。因此,在我看来,我正在遍历我的所有对象,每个对象都有独特的属性——其中一个属性我想发送到我的控制器,它做了一些事情,然后重新加载页面。
我的控制器class如下:
public IActionResult Index()
{
return View(_context.Modules.ToList());
}
[HttpPost]
public IActionResult LoadModule(string packageName)
{
//... do some things here
return RedirectToAction("Index");
}
我的看法如下:
<div class="container">
<div class="row">
@foreach (var m in Model)
{
<div class='col-sm-4'>
<div class="card border-secondary mb-3">
<div class="card-body">
<div class="row">
<button class="btn btn-outline-primary" id="SendValue"
type="submit" value="@m.IntegrationPoint">
Execute Package
</button>
</div>
</div>
</div>
<br />
</div>
}
</div>
</div>
还有我的 Jquery/Ajax:
<script>
$(document).ready(function() {
$("#SendValue").click(function(){
var val = $(this).val();
$.ajax({
type:"POST",
url: '/ExampleModuleController/LoadModule',
dataType: 'json',
data:{String:val}
})
.fail(function(){alert("fail")})
.done(function(){alert("success")})
});
});
</script>
A link 到 fiddle 以便于查看 html。
我在这里做错了什么?它甚至似乎没有记录我的按钮点击或任何东西。
将以下代码添加到您的视图中
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
把url: '/ExampleModuleController/LoadModule',
改成url: '@Url.Action("LoadModule", "ExampleModule")?IntegrationPoint=' + val ,
此外,在 Controller 中,将参数名称更改为 string IntegrationPoint
在 LoadModule 操作中。
注意:因为.fail(function(){alert("fail")})
在前面,所以会提示失败信息。
结果:
我快要发疯了,想弄清楚这个问题。 首先,我正在使用 entity framework 和模型等。因此,在我看来,我正在遍历我的所有对象,每个对象都有独特的属性——其中一个属性我想发送到我的控制器,它做了一些事情,然后重新加载页面。
我的控制器class如下:
public IActionResult Index()
{
return View(_context.Modules.ToList());
}
[HttpPost]
public IActionResult LoadModule(string packageName)
{
//... do some things here
return RedirectToAction("Index");
}
我的看法如下:
<div class="container">
<div class="row">
@foreach (var m in Model)
{
<div class='col-sm-4'>
<div class="card border-secondary mb-3">
<div class="card-body">
<div class="row">
<button class="btn btn-outline-primary" id="SendValue"
type="submit" value="@m.IntegrationPoint">
Execute Package
</button>
</div>
</div>
</div>
<br />
</div>
}
</div>
</div>
还有我的 Jquery/Ajax:
<script>
$(document).ready(function() {
$("#SendValue").click(function(){
var val = $(this).val();
$.ajax({
type:"POST",
url: '/ExampleModuleController/LoadModule',
dataType: 'json',
data:{String:val}
})
.fail(function(){alert("fail")})
.done(function(){alert("success")})
});
});
</script>
A link 到 fiddle 以便于查看 html。
我在这里做错了什么?它甚至似乎没有记录我的按钮点击或任何东西。
将以下代码添加到您的视图中
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
把url: '/ExampleModuleController/LoadModule',
改成url: '@Url.Action("LoadModule", "ExampleModule")?IntegrationPoint=' + val ,
此外,在 Controller 中,将参数名称更改为 string IntegrationPoint
在 LoadModule 操作中。
注意:因为.fail(function(){alert("fail")})
在前面,所以会提示失败信息。
结果: