根据从下拉列表中选择的项目显示ViewBag的属性并发布ID
Displaying attribute of ViewBag depending on the selected item from DropDownList and posting the ID
我已经成功地使用了这个问题的答案,但不知道如何也有所选项目的id发布到控制器。
@agarwaen发表了一条评论,暗示这是可能的,但他没有说为什么。
我想在下拉框中显示名称,用与该项目相关的点填充文本框,并将所选项目的id发送给控制器。
我目前可以做前两个,但它是张贴点回控制器,而不是id。
ViewBag正在被这样填充:
ViewBag.ActivityID = new SelectList(allowedActivities, "Points", "Name", "ActivityID");
*allowedActivities是保存活动对象的列表的名称(每个活动对象都有一个名称,id和点)
使用的javascript是:
$(document).ready(function () {
$("#activityName").change(function () {
var $this = $(this);
var selectedValue = $this.val();
$("#activityPoints").val(selectedValue);
});
});
剃刀是:
<div class="form-group">
@Html.LabelFor(model => model.ActivityID, "Activity Name", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ActivityID", null, "----Select An Activity----", htmlAttributes: new { @class = "form-control", @id = "activityName"})
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Activity.CPDTPoints, "CPTD Points", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(model => model.Activity.CPDTPoints, new { disabled = "disabled", @readonly = "readonly", @class = "form-control", @id = "activityPoints" })
</div>
</div>
显示如下HTML:
<div class="col-md-10">
<select class="form-control valid" id="activityName" name="ActivityID">
<option value="">----Select An Activity----</option>
<option value="3">Reading Educational Material</option>
<option value="2">Electronic Media Activities</option>
<option value="1">Attending Meetings</option>
<option value="1">Attending Half Day Conferences/ Workshops</option>
<option value="2">Mentoring and Coaching</option>
<option value="10">Secondment for Six Months</option>
<option value="3">Response to Developmental Needs</option>
<option value="6">Participating in Book Clubs</option>
<option value="1">Organising Workshop Activities</option>
<option value="2">Research and Developing</option>
<option value="3">Kick-Starting/Leading Project</option>
<option value="3">Being and External Examiner</option>
</select>
</div>
所以这是给每个选项一个点数值,我需要能够访问点数和ID。
我想在文本框中填充下拉菜单中所选项目的点(同样,这是有效的),但将id发送给控制器(它目前正在发送点)。
有两个选项:
-
您可以在下拉菜单的更改事件上发出ajax请求,并获得所选项目的Id,将Id分配给表单中的隐藏字段。
-
你可以写一个自定义的HTML助手来创建你的下拉菜单,这样你的下拉菜单中的选项标签就会有你需要的额外属性。
请看这里的一个创建自定义下拉帮助器的示例。
我最终使用名称(即下拉菜单中的文本)并将其发布到服务器并使用它来查找活动(名称是唯一的)。我用这个来获取所选下拉框的文本。我保留了每个项目的点数作为值,尽管这在技术上是错误的。
所以我保留了上面使用的所有代码,只是修改了c#来查找基于名称而不是id的活动。我需要改变的实例,我正在做一个表单提交到一个AJAX帖子,使其无处不在的工作。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 在 javascript 中分配 ViewBag 属性
- 如何检查ViewBag's属性
- 从javascript中的viewbag属性获取值
- 如何访问Viewbag中foreach外特定索引处对象的属性
- 将MVC ViewBag属性转换为小写
- 根据从下拉列表中选择的项目显示ViewBag的属性并发布ID
- 当重载一个返回视图的控制器时,我该如何基于ViewBag属性加载不同的内容?