ASP.问题与形式,不显示我的字段值

本文关键字:显示 我的 字段 问题 ASP | 更新日期: 2023-09-27 18:15:23

为了验证,我决定尝试使用@Html.TextBoxFor,以便快速和容易地验证。但是,没有设置值的选项,我假设它是自动完成的,但它不是自动设置的。

控制器:

        MyLibrary.MyProspect prospect = MyLib.GetProspect(ID);
        return View(prospect);

视图:

@model MyLibrary.MyProspect
@using (Html.BeginForm("Update", "Prospects"))
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Edit</legend>
        @Html.LabelFor(model => model.Name)
        @Html.TextBoxFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)

我的图书馆对Prospect的定义:

public class MyProspect
{
    public String Name { get; set; }
}

我的猜测是,在任何时候,我都没有设置模型实际上是我的前景。但我没有遇到过这样的例子,我想我已经把它从我的观点中传递出去了?

这是工作代码,我只是混合和匹配我的控制器操作到错误的视图。

ASP.问题与形式,不显示我的字段值

你写的代码看起来是正确的,我猜你的问题是在MyLib.GetProspect(ID)没有设置Name字段的值。

要使客户端验证工作,您需要做以下几件事:

  1. 使用适当的DataAnnotations修饰模型中的一些字段
  2. 确保你有ClientValidationEnabled &UnobtrusiveJavaScriptEnabled options设置为"true"。这可以直接在<appSettings>中完成。
  3. 在页面中包含相应的库,即jquery.validate.min.jsjquery.validate.unobtrusive.min.js

如果您没有特殊的视图要求,您可以将代码减少为:

@Html.EditorForModel()

@model MyLibrary.MyProspect这一行将模型设置为MyProspect。

你的MyProspect上有数据注释吗?名称属性?

也许可以添加您对MyProspect的定义。