gpt4 book ai didi

asp.net-mvc - 在 Razor View 中重命名 mvc 模型对象

转载 作者:行者123 更新时间:2023-12-03 18:37:19 24 4
gpt4 key购买 nike

我正在使用 MVC 4,通常 Visual Studio 会为您创建所有 View 。我有一个只有一个字段的表单,我想将创建表单嵌入到索引 View 中。

所以索引 View 有类似 @model IEnumerable<Models.LinkModel> 的内容

所以我通过遍历 Model 集合来访问它。

但是,如果我尝试为创建操作嵌入表单,我需要 @model Models.LinkModel它也可以通过 Model.Name 访问。有没有办法做到这一点或使用不同的变量名称?

好的,这里有一些额外的信息。

所以我有一个模型。

public class LinkModel
{
public string LinkUrl {get;set;}
}

我有一个具有 Create 和 Index ActionResults 的 Controller 。

现在在索引 View 中我有
@model IEnumerable<Models.LinkModel>

@{
ViewBag.Title = "Links";
}

我可以用我所有花哨的逻辑来列出所有链接。
@foreach(link in Model)
{
<p>link.LinkUrl<p>
}

创建 View 有这个
@model Models.LinkModel // Note that it is just one item not IEnumerable

@{
ViewBag.Title = "Add Link";
}

@using (Html.BeginForm())
{
@Html.ValidationSummary(true)

<fieldset class="editor-fieldset">
<legend>LinkModel</legend>

<div class="editor-label">
@Html.LabelFor(model => model.LinkUrl)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.LinkUrl)
</div>
<p>
<input type="submit" value="Add Link" />
</p>
</fieldset>
}

现在,只为一个字段创建表单似乎很愚蠢。我想把这个表格放在索引页面上。问题是我使用变量模型访问对象。我想知道是否有办法拥有两个单独的实例或能够访问具有不同名称的模型对象。

最佳答案

有一个包含项目列表和 1 个用于创建的单个项目的复合模型

public class  IndexModel {
public LinkModel CreateModel {get; set;}
public IEnumerable<LinkModel> Items {get; set;}
}


@model IndexModel
@using(Html.BeginForm("create")) {
@Html.EditorFor(m => m.CreateModel.Name);
}
@foreach(var item in Model.Items) {
@item.Name
}

关于asp.net-mvc - 在 Razor View 中重命名 mvc 模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664981/

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