gpt4 book ai didi

asp.net-mvc - 如何通过设置不同的 id 来重用局部 View

转载 作者:行者123 更新时间:2023-12-03 07:15:10 24 4
gpt4 key购买 nike

我有一个带有下拉菜单的部分 View 。代码如下所示:

 <%=Html.DropDownListFor(x => Model.Exercises, new SelectList(Model.Exercises, "Id", "Name", Model.SelectedExercise), new { @id = "exerciseDropdown", @class = "autoComplete" })%>

问题是我想在多个地方重用这个部分 View ,但我想为该控件分配一个不同的 id(而不是始终使用exerciseDropdown),但在外部我只有这个:

 <% Html.RenderPartial("ExerciseList", Model); %>

有没有办法将 id 传递到局部 View 中?有没有一种标准方法可以将 id 注入(inject)到局部 View 中?

现在我正在做这样的事情:

 <% Html.RenderPartial("ExerciseList", Model); %>
<% Html.RenderPartial("ExerciseList2", Model); %>

其中ExerciseList 和ExerciseList2 相同,但ID 不同,但我确信有更好的方法。

最佳答案

听起来您正在使用相同的模型来执行两个部分 View 。我看到有两个设置选项。

  1. 就像 Nick 上面所说的那样,使用分部类并将 dropDownID 属性添加到您的模型中。

**警告前面有伪 VB 代码

Partial Public Class Exercise
Dim _ddID as string

Public Property DropDownID as string
Get
Return _ddID
End Get
Set(byval value as string)
_ddID = value
End Set
End Property

然后在你的 Controller 中:

Function Index() as ActionResult
Exercise = getExercise() 'call to get your exercise model'
Exercise.DropDownID = "DropDownID1"
Return View(Exercise)
End Function

查看:

 <%=Html.DropDownListFor(x => Model.Exercises, new SelectList(Model.Exercises, "Id", "Name", Model.SelectedExercise), new { @id = model.DropDownID, @class = "autoComplete" })%> 

选项 2:在 ViewData 字典中设置

Controller :

Function Index() as ActionResult
Exercise = getExercise() 'call to get your exercise model'
ViewData("ExerciseID") = "DropDownID1"
Return View(Exercise)
End Function

调用部分 View :

<% Html.RenderPartial("ExerciseList", Model, ViewData); %> 

查看:

 <%=Html.DropDownListFor(x => Model.Exercises, new SelectList(Model.Exercises, "Id", "Name", Model.SelectedExercise), new { @id = ViewData("ExerciseID"), @class = "autoComplete" })%> 

关于asp.net-mvc - 如何通过设置不同的 id 来重用局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574462/

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