gpt4 book ai didi

c# - 从返回 View 模型的 Controller 操作加载 View 时为空字段

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:23 25 4
gpt4 key购买 nike

我正在尝试编辑一条记录,但是在呈现 View 时,数据没有显示(所有字段都是空的)。我调试了 View 模型,可以看到数据正在正确加载。

这是我的代码:

编辑操作:

 public ActionResult Edit(Guid? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}

var clienteViewModel = GetClienteViewModel(db.Clientes.Find(id));
if (clienteViewModel == null)
{
return HttpNotFound();
}

return View(clienteViewModel);
}

编辑 View

@model Poo3.ViewModels.ClienteViewModel

<h2>Edit</h2>


@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
<h4>@Model.PessoaFisica.CPF</h4>
<hr />

@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Nome, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Nome, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Nome, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.DataNascimento, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.DataNascimento, new { htmlAttributes = new { @class = "form-control datepicker" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.DataNascimento, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.CPF, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.CPF, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.CPF, "", new { @class = "text-danger" })
</div>
</div>


<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Email, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Email, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Email, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Ativo, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div class="checkbox">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Ativo)
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Ativo, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="form-horizontal">
<h4>Endereço</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Endereco.Logradouro, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Endereco.Logradouro, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Endereco.Logradouro, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Endereco.Numero, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Endereco.Numero, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Endereco.Numero, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Endereco.Complemento, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Endereco.Complemento, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Endereco.Complemento, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Endereco.Bairro, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Endereco.Bairro, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Endereco.Bairro, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Endereco.CEP, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Endereco.CEP, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Endereco.CEP, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Endereco.Cidade, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Endereco.Cidade, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Endereco.Cidade, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.PessoaFisica.Pessoa.Endereco.Estado, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PessoaFisica.Pessoa.Endereco.Estado, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PessoaFisica.Pessoa.Endereco.Estado, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
}

<div>
@Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

谢谢大家

最佳答案

我发现了错误,我必须包含所有导航

 public ActionResult Edit(Guid? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Cliente cliente = db.Clientes.Include(x => x.PessoaFisica).Include(x => x.PessoaFisica.Pessoa).Include(x=> x.PessoaFisica.Pessoa.Endereco).FirstOrDefault(x=>x.Id == id);
if (cliente == null)
{
return HttpNotFound();
}
return View(cliente);
}

关于c# - 从返回 View 模型的 Controller 操作加载 View 时为空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50744427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com