asp.net-mvc – 在Razor View中重命名mvc模型对象
发布时间:2020-12-16 06:22:36 所属栏目:asp.Net 来源:网络整理
导读:我正在使用MVC 4,通常Visual Studio会为您创建所有视图.我有一个只有一个字段的表单,我想将创建表单嵌入到索引视图中. 因此,索引视图具有类似@model IEnumerable Models.LinkModel的内容. 所以我通过迭代模型集合来访问它. 但是如果我尝试为创建操作嵌入表单
|
我正在使用MVC 4,通常Visual Studio会为您创建所有视图.我有一个只有一个字段的表单,我想将创建表单嵌入到索引视图中.
因此,索引视图具有类似@model IEnumerable< Models.LinkModel>的内容. 所以我通过迭代模型集合来访问它. 但是如果我尝试为创建操作嵌入表单,我需要@model Models.LinkModel 好的,这是一些额外的信息. 所以我有一个模特. public class LinkModel
{
public string LinkUrl {get;set;}
}
我有一个具有Create和Index ActionResults的控制器. 现在在索引视图中我有 @model IEnumerable<Models.LinkModel>
@{
ViewBag.Title = "Links";
}
我可以用我所有的奇特逻辑列出所有链接. @foreach(link in Model)
{
<p>link.LinkUrl<p>
}
创建视图具有此功能 @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>
}
现在,只为一个字段创建一个创建表单似乎非常愚蠢.我想把这个表单放在索引页面上.问题是我使用变量Model访问对象.我想知道是否有一种方法可以有两个单独的实例或能够访问具有不同名称的Model对象. 解决方法
拥有一个包含项目列表和创建的单个项目的复合模型
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 – DisplayFormat未应用于十进制值
- asp.net-mvc – mvc – 页面标题 – 两种不同的设置
- asp.net-mvc-5 – Sharepoint 2013 MVC 5提供商托管的应用程
- asp.net-mvc – 如何在ASP.NET MVC中显示外键字段的显示名称
- asp.net-mvc – 滚动到验证摘要 – ASP.net MVC
- ASP.NET MVC中特定于视图的模型?
- asp.net-mvc – 我可以在Razor视图中访问C#枚举吗?
- asp.net-mvc-3 – 此版本的SQL Server不支持没有聚集索引的
- asp.net-mvc – ASP.NET MVC WebSite中的ERR_EMPTY_RESPONS
- asp.net – 将SVN与Visual Studio 2003集成
推荐文章
站长推荐
热点阅读
