【问题标题】:MVC Routing with Period in parameter name参数名称中带有句点的 MVC 路由
【发布时间】:2017-09-07 20:45:46
【问题描述】:

我正在尝试在 MVC 应用程序中使用实体框架实现远程验证。我需要帮助尝试定义操作签名和适当的路由配置。我的模型中有以下类:

 public class FiscalReports
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long id { get; set; }
    public Int64 Counter { get; set; }
    public short FiscalYear { get; set; }
   [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MMM dd, yyyy}")]
   [DisplayFormat(DataFormatString = "${0:N0}")]
    [Remote("ValidateSalary", "FiscalReports", AdditionalFields ="Counter, FiscalYear")]
    public int? Salaries { get; set; }

}

我有一个视图模型,用于包含上述多个对象的视图。

 public class FiscalReportVM
{
    public FiscalReports CurrentFR { get; set; }
    public FiscalReports ReportedToDate { get; set; }
    public FiscalReports BudgetToDate { get; set; }
}

验证动作在 FiscalReports 控制器中如下:

  public JsonResult ValidateSalary(int Salaries, short FiscalYear, int Counter)
    {
        return ValidateFiscalField(Salaries, FiscalYear, Counter, "Salaries");
    }

在视图中我正在使用 HTML 助手

@Html.EditorFor(model=>model.CurrentFR.Salaries)

这会正确生成字段和验证。生成的 HTML 如下

input data-val="true" data-val-number="The field Salaries must be a number." data-val-remote="'Salaries'; is invalid." data-val-remote-additionalfields="*.Salaries,*.Counter,*.FiscalYear" data-val-remote-url="/FiscalReports/ValidateSalary" name="CurrentFR.Salaries" type="number" value="" />

验证请求正确触发,在提琴手中我看到以下请求:

http://localhost:50409/FiscalReports/ValidateSalary?CurrentFR.Salaries=27000&CurrentFR.Counter=4773&CurrentFR.FiscalYear=2

我的问题是我无法使用点分符号定义路径和操作。动作定义不接受虚线参数(不能做 ValidateSalary(int CurrentFR.Salaries,....)。我需要帮助尝试定义动作签名和适当的路由配置。

【问题讨论】:

标签: c# asp.net-mvc-3 model-view-controller asp.net-mvc-routing


【解决方案1】:

你不能用一点 JQuery 来改变 name 属性吗?大意是:

$("CurrentFR.Salaries").attr('name', 'Salaries')

记得有一个类似的问题,我只是暂时更改了视图中的名称,然后在操作中更改了回来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 2015-03-18
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2018-03-24
    相关资源
    最近更新 更多