gpt4 book ai didi

asp.net-mvc - 带有模型和 ViewDataDictionary 的 asp mvc 部分 - 如何访问 ViewDataDictionary?

转载 作者:行者123 更新时间:2023-12-03 05:36:40 25 4
gpt4 key购买 nike

我正在创建一个更新两个相关模型的表单,在本例中是一个包含任务集合的项目,我希望 Controller 接受一个项目,该项目的任务集合是从表单输入加载的。我有这个工作,基本上是下面的代码,没有部分。

这可能听起来很愚蠢,但我不知道如何从部分访问计数器(i)?

型号

public class Project
{
public string Name { get; set; }
public List<Task> Tasks { get; set; }
}

public class Task
{
public string Name { get; set; }
public DateTime DueDate { get; set; }
}

Create.cshtml( View )

@model MyWebApp.Models.Project

@using(Html.BeginForm("Create", "Project", FormMethod.Post, new { id = "project-form" }))
{
<div>
@Html.TextBox("Name", Model.Name)
</div>

@for(int i = 0; i < Model.Tasks.Count; i++)
{
@Html.Partial("_TaskForm", Model.Tasks[i], new ViewDataDictionary<int>(i))
}

}

_TaskForm.cshtml(部分 View )

@model MyWebApp.Models.Task

<div>
@Html.TextBox(String.Format("Tasks[{0}].Name", 0), Model.Name)
</div
<div>
@Html.TextBox(String.Format("Tasks[{0}].DueDate", 0), Model.DueDate)
</div

注意上面的 String.Format 我硬编码为 0,我想使用 ViewDataDictionary 参数,该参数绑定(bind)到调用 View 中的变量 i

最佳答案

我猜我发布得太早了。这个帖子有我正在寻找的答案

asp.net MVC RC1 RenderPartial ViewDataDictionary

我最终使用了这种简洁的语法

@Html.Partial("_TaskForm", Model.Tasks[i], new ViewDataDictionary { {"counter", i} } )

然后在部分 View 中

@model MyWebApp.Models.Task
@{
int index = Convert.ToInt32(ViewData["counter"]);
}

<div>
@Html.TextBox(String.Format("Tasks[{0}].Name", index), Model.Name)
</div>
<div>
@Html.TextBox(String.Format("Tasks[{0}].DueDate", index), Model.DueDate)
</div>

关于asp.net-mvc - 带有模型和 ViewDataDictionary 的 asp mvc 部分 - 如何访问 ViewDataDictionary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4865162/

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