【发布时间】:2015-09-08 14:25:16
【问题描述】:
我已成功使用this question 的答案,但不知道如何将所选项目的 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 发布到控制器(它当前正在发布点)。
【问题讨论】:
-
but post the id to the controller (it is currently posting the points)。什么身份?输入元素id? -
活动 ID。即被选中项的 ID。
-
你可以使用隐藏输入并在设置点时设置它吗?
-
@stephen.vakil 你如何访问javascript中的ID?
-
身份证在哪里?你能显示填充列表的代码吗?
标签: javascript asp.net-mvc razor viewbag