C# 输入';编号';对于Asp.Net中的双打?

C# 输入';编号';对于Asp.Net中的双打?,c#,html,asp.net-core,razor,double,C#,Html,Asp.net Core,Razor,Double,如果在Asp.Net核心应用程序中有一个变量类型Int,则会为该模型生成一个只允许您写入数字的输入div,并允许您通过一些按钮增加该数字: 但是,如果模型中的原始变量是Double,则代码生成的输入div与用于字符串的输入div相同,允许您在其中写入单词,尽管模型不接受这些值 有没有办法改变这种状况 我希望我的双精度输入div与用于整数的输入div相同,但按钮允许增加数字的整数部分,但末尾仍有逗号/点,允许您写入小数部分/小数部分,手动。您可以使用JQuery只允许在文本框中输入数字和一个

如果在Asp.Net核心应用程序中有一个变量类型Int,则会为该模型生成一个只允许您写入数字的输入div,并允许您通过一些按钮增加该数字:


但是,如果模型中的原始变量是Double,则代码生成的输入div与用于字符串的输入div相同,允许您在其中写入单词,尽管模型不接受这些值

有没有办法改变这种状况


我希望我的双精度输入div与用于整数的输入div相同,但按钮允许增加数字的整数部分,但末尾仍有逗号/点,允许您写入小数部分/小数部分,手动。

您可以使用JQuery只允许在文本框中输入数字和一个小数点

检查以下代码(根据您的描述和标记列表,我假设您正在创建Asp.net core Razor应用程序):

Product.cs

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
}
Create.cshtml.cs

public class CreateModel : PageModel
{
    [BindProperty]
    public Product Product { get; set; }
    public void OnGet()
    {
    }

    public async Task<IActionResult> OnPostAsync()
    {
        if (!ModelState.IsValid)
        {
            return Page();
        }
        var data = Product;

        return RedirectToPage("./Index");
    }
}
公共类CreateModel:PageModel
{
[BindProperty]
公共产品产品{get;set;}
公共互联网
{
}
公共异步任务OnPostAsync()
{
如果(!ModelState.IsValid)
{
返回页();
}
var数据=产品;
返回页首(“/索引”);
}
}
Create.cshtml:

@page
@model RazorSample.Pages.CreateModel

<div class="row">
    <div class="col-md-4">
        <form method="post">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div> 
            <div class="form-group">
                <label asp-for="Product.Name" class="control-label"></label>
                <input asp-for="Product.Name" class="form-control" />
                <span asp-validation-for="Product.Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Product.Price" class="control-label"></label>
                <input asp-for="Product.Price" class="form-control" />
                <span asp-validation-for="Product.Price" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
@section Scripts{
<script>
    $(function () { 
        $("#Product_Price").on("keypress keyup blur", function (event) { 
            $(this).val($(this).val().replace(/[^0-9\.]/g, ''));
            if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
                event.preventDefault();
            }
        });
    })
</script>
}
@page
@模型RazorSample.Pages.CreateModel
@节脚本{
$(函数(){
$(“#产品#价格”)。在(“按键向上模糊”,函数(事件){
$(this.val($(this.val().replace(/[^0-9\.]/g');
if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
event.preventDefault();
}
});
})
}
输出如下(仅允许数字和一个小数点):

@page
@model RazorSample.Pages.CreateModel

<div class="row">
    <div class="col-md-4">
        <form method="post">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div> 
            <div class="form-group">
                <label asp-for="Product.Name" class="control-label"></label>
                <input asp-for="Product.Name" class="form-control" />
                <span asp-validation-for="Product.Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Product.Price" class="control-label"></label>
                <input asp-for="Product.Price" class="form-control" />
                <span asp-validation-for="Product.Price" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
@section Scripts{
<script>
    $(function () { 
        $("#Product_Price").on("keypress keyup blur", function (event) { 
            $(this).val($(this).val().replace(/[^0-9\.]/g, ''));
            if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
                event.preventDefault();
            }
        });
    })
</script>
}