asp.net - 剃刀页面 - 输入更改时更新标签
问题描述
我想显示一个显示商品价格的标签,从输入框中获取该价格(并可能根据其他输入(例如复选框)计算新价格)。我希望用户在输入中更改该值后,控制器就可以使用新值计算所有内容。我怎样才能做到这一点?提前致谢!
解决方案
您可以使用keyup
事件来实现此要求。以下是mvc
和的示例razor-pages
。
MVC
家庭控制器:
public IActionResult Test()
{
return View();
}
[HttpPost]
public IActionResult Test(int data)
{
//you can do your logic here
data++;
return new JsonResult(new { result = data });
}
测试视图:
<input id="input" type="number" />
<div id="other"></div>
@section Scripts
{
<script>
$("#input").keyup(function () {
var data = $("#input").val();
$.ajax({
type: "POST",
url: "/home/test",
data: { "data": data },
dataType: "json",
success: function (response) {
$('#other').html(response.result);
}
});
});
</script>
}
剃刀页面
在您的启动中,添加
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");
页面模型:
public class TestModel : PageModel
{
public void OnGet()
{
}
public IActionResult OnPostInput(int data)
{
data++;
return new JsonResult (new { result=data});
}
}
页
<input id="input" type="number" />
<div id="other"></div>
@section Scripts
{
<script>
$("#input").keyup(function () {
var data = $("#input").val();
$.ajax({
type: "POST",
url: "?handler=input",
data: { "data": data },
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
dataType: "json",
success: function (response) {
$('#other').html(response.result);
}
});
});
</script>
}
测试结果:
推荐阅读
- gradle - Groovy Spock 测试将 HTTP 请求记录到标准输出
- codeigniter - Codeigniter 保留已发送的返回标头和 Html 字符
- azure-cosmosdb - Cosmos DB 查询不返回所有结果
- c++ - 如何修复 boost/asio c++ 异常错误?
- postgresql - PostgreSQL 对索引长于没有索引的列的查询
- php - 如何使用理论 ORM 在 Symfony 中设置初始数据(不是测试数据)
- c++ - 如何在不使用数组的情况下返回输入的最小值
- typescript - 如何在打字稿中定义续集关联?
- haskell - 将列表转换为矩阵 (Haskell)
- swift - 禁止在 Swift 中设置特定值