在.NET Core MVC 3.1

问题描述

我很难为双重财产的价值传递问题。就属性而言,坐标(纬度,经度)的格式为###。######。在我的PC上,认数字格式为### ###,## 我的输入字段仅传递值###,###。如果输入类似以下内容

1234444,然后我收到消息“纬度字段必须是数字。”在代码属性中的值为0

130.653221 =>相同,属性收到0,我收到消息“值'130.653221'对于谷歌纵横无效。”

12,1234,则客户端验证程序不会通过我,因为“纬度字段必须是数字。”

我试图在viewmodel中放置正则表达式,例如[RegularExpression(@“ ^ \ d +。\ d {0,6} $”)],但未成功。 有什么方法可以将值的格式更改为###。######?

下面您可以找到我的代码

viewmodel

    public class ShopLocationviewmodel
{
    public int Id { get; set; }
    public string Header { get; set; }
    public string FirstText { get; set; }
    public string SecondText { get; set; }
    public string ThirdText { get; set; }
    public string LinkText { get; set; }
    public string Link { get; set; }
    public double Latitude { get; set; }
    public double Longitude { get; set; }
    public int Priority { get; set; }
}

控制器:

        [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind("Header,FirstText,SecondText,ThirdText,LinkText,Link,Latitude,Longitude,Priority,Id")] ShopLocationviewmodel shopLocation)
    {

        if (ModelState.IsValid)
        {
            var shopLocationDto = _viewmodelmapper.Map(shopLocation);
            _datamanger.AddNewShopLocation(shopLocationDto);
            return RedirectToAction(nameof(Index));
        }
        return View(shopLocation);
    }

查看:

@model ShopLocationviewmodel

<div class="row">
<div class="col-md-4">
    <form asp-action="Create">
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="Header" class="control-label"></label>
            <input asp-for="Header" class="form-control" />
            <span asp-validation-for="Header" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="FirstText" class="control-label"></label>
            <input asp-for="FirstText" class="form-control" />
            <span asp-validation-for="FirstText" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="SecondText" class="control-label"></label>
            <input asp-for="SecondText" class="form-control" />
            <span asp-validation-for="SecondText" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="ThirdText" class="control-label"></label>
            <input asp-for="ThirdText" class="form-control" />
            <span asp-validation-for="ThirdText" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="LinkText" class="control-label"></label>
            <input asp-for="LinkText" class="form-control" />
            <span asp-validation-for="LinkText" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="Link" class="control-label"></label>
            <input asp-for="Link" class="form-control" />
            <span asp-validation-for="Link" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="Latitude" class="control-label"></label>
            <input asp-for="Latitude" class="form-control" />
            <span asp-validation-for="Latitude" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="Longitude" class="control-label"></label>
            <input asp-for="Longitude" class="form-control" />
            <span asp-validation-for="Longitude" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="Priority" class="control-label"></label>
            <input asp-for="Priority" class="form-control" />
            <span asp-validation-for="Priority" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input type="submit" value="Create" class="btn btn-primary" />
        </div>
    </form>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)