- 单选按钮的选择问题,我在页面
- 4个部分,每部分有多个问题
- 每个问题有3个单选按钮。
- 我的单选按钮在4个部分中获得相同的名称和ID,而不是在问题级别唯一。 (我的问题)
我该如何解决这个问题?感谢MVC3 - 多问题
视图 - 表示部1仅
@using (Html.BeginForm(ActionNames.Index, ControllerNames.PaperSurveyQualityControl, new { Area = AreaNames.OngoingProjects }, FormMethod.Post, new { @id = "PaperSurveyQualityControlForm" })){
@Html.HiddenFor(x => x.Header.SurveyValidationId)
if (Model.PersonalInformation != null && Model.PersonalInformation.Count > 0)
{
<div class="distanceBottom">
<table class="siteTable">
<thead>
<th style="width: 38%;">Description</th>
<th style="width: 30%;">Keyed Value</th>
<th style="width: 10%;"><center>Correct</center></th>
<th style="width: 10%;"><center>Typo</center></th>
<th style="width: 12%;"><center>Mismatched</center></th>
</thead>
<tbody>
@foreach (var item in Model.PersonalInformation)
{
@Html.HiddenFor(x => item.CategoryCode)
<tr>
<td>@item.Description</td>
<td>@item.KeyedValue</td>
<td><center>@Html.RadioButtonFor(model => item.Response, "C")</center></td>
<td><center>@Html.RadioButtonFor(model => item.Response, "T")</center></td>
<td><center>@Html.RadioButtonFor(model => item.Response, "M")</center></td>
</tr>
}
</tbody>
</table>
</div>
}
}
源视图代码
<form action="/OngoingProjects/PaperSurveyQualityControl" id="PaperSurveyQualityControlForm" method="post">
<input data-val="true" data-val-number="The field SurveyValidationId must be a number." data-val-required="The SurveyValidationId field is required." id="Header_SurveyValidationId" name="Header.SurveyValidationId" type="hidden" value="1" />
<div class="distanceBottom">
<table class="siteTable">
<thead>
<th style="width: 38%;">Description</th>
<th style="width: 30%;">Keyed Value</th>
<th style="width: 10%;"><center>Correct</center></th>
<th style="width: 10%;"><center>Typo</center></th>
<th style="width: 12%;"><center>Mismatched</center></th>
</thead>
<tbody><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="FN" />
<tr>
<td>First Name</td>
<td>Firstname</td>
<td><center><input data-val="true" data-val-required="Message missing!" id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="LN" />
<tr>
<td>Last Name</td>
<td>Lastname</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="AD" />
<tr>
<td>Address</td>
<td>123 Test</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="CT" />
<tr>
<td>City</td>
<td>Marcelius</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="ST" />
<tr>
<td>State</td>
<td>NV</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="ZC" />
<tr>
<td>Zip Code</td>
<td>13108</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="EM" />
<tr>
<td>Email</td>
<td>[email protected]</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr>
</tbody>
</table>
</div>
<div class="distanceBottom">
<table class="siteTable">
<thead>
<th style="width: 38%;">Description</th>
<th style="width: 30%;">Keyed Value</th>
<th style="width: 10%;"><center>Correct</center></th>
<th style="width: 10%;"><center>Typo</center></th>
<th style="width: 12%;"><center>Mismatched</center></th>
</thead>
<tbody><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="Q1" />
<tr>
<td>Q1 - blah blah blah</td>
<td>A</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="Q2" />
<tr>
<td>Q2 - blah blah blah</td>
<td>ADF</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="Q3" />
<tr>
<td>Q3 - blah blah blah</td>
<td>BC</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="Q4" />
<tr>
<td>Q4 - blah blah blah</td>
<td>D</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr>
</tbody>
</table>
</div>
<div class="distanceBottom">
<table class="siteTable">
<thead>
<th style="width: 38%;">Description</th>
<th style="width: 30%;">Keyed Value</th>
<th style="width: 10%;"><center>Correct</center></th>
<th style="width: 10%;"><center>Typo</center></th>
<th style="width: 12%;"><center>Mismatched</center></th>
</thead>
<tbody><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="S1" />
<tr>
<td>Declared State 1</td>
<td>MO</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="S2" />
<tr>
<td>Declared State 2</td>
<td>NY</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="S3" />
<tr>
<td>Declared State 3</td>
<td>AZ</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr>
</tbody>
</table>
</div>
<div class="distanceBottom">
<table class="siteTable">
<thead>
<th style="width: 38%;">Description</th>
<th style="width: 30%;">Keyed Value</th>
<th style="width: 10%;"><center>Correct</center></th>
<th style="width: 10%;"><center>Typo</center></th>
<th style="width: 12%;"><center>Mismatched</center></th>
</thead>
<tbody><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="C1" />
<tr>
<td>Declared College 1</td>
<td>US Naval Academy</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="C2" />
<tr>
<td>Declared College 2</td>
<td>Don't know any others</td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="C3" />
<tr>
<td>Declared College 3</td>
<td></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="C4" />
<tr>
<td>Declared College 4</td>
<td></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr><input id="item_CategoryCode" name="item.CategoryCode" type="hidden" value="C5" />
<tr>
<td>Declared College 5</td>
<td></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="C" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="T" /></center></td>
<td><center><input id="item_Response" name="item.Response" type="radio" value="M" /></center></td>
</tr>
</tbody>
</table>
</div>
<div class="distanceTop">
<button type="submit" title="Update Email" id="ButtonUpdate" class="gradientbuttonRight gradientbutton gradientorange">Update</button>
<a id="ButtonExit" class="gradientbuttonLeft gradientbutton gradientblue" href="/OngoingProjects/PaperSurveyQualityControl/Exit?badEmailId=1" title="Exit">EXIT</a>
</div>
</form>
视图模型
using Sqc.BusinessEntities; namespace Sqc.ViewModels.OngoingProject{
public partial class PaperSurveyQualityControlVideoModel {
public PaperSurveyQualityControlHeader Header { get; set; }
public List<PaperSurveyQualityControlItem> PersonalInformation { get; set; }
public List<PaperSurveyQualityControlItem> QuestionAnswers { get; set; }
public List<PaperSurveyQualityControlItem> DeclaredStates { get; set; }
public List<PaperSurveyQualityControlItem> DeclaredColleges { get; set; }
}
}
个业务实体:
页眉
namespace Sqc.BusinessEntities{ public partial class PaperSurveyQualityControlHeader {
public int SurveyValidationId { get; set; }
public string ImageFront { get; set; }
public string ImageBack { get; set; }
}
}
项目
namespace Sqc.BusinessEntities{ public partial class PaperSurveyQualityControlItem {
public string CategoryCode { get; set; }
public string Description { get; set; }
public string KeyedValue { get; set; }
public string Response { get; set; } //C=Correct, T=Typo, M=Mismatch REQUIRED - radio button response
}
}
项目验证
using System.ComponentModel.DataAnnotations;using DataAnnotationsExtensions;using System.Web.Mvc; namespace Sqc.BusinessEntities{
[MetadataType(typeof(PaperSurveyQualityControlItem.PaperSurveyQualityControlItemMetaData))]
public partial class PaperSurveyQualityControlItem {
public class PaperSurveyQualityControlItemMetaData {
[Required(ErrorMessage = ValidationMessageConstants.MessageRequired)]
public string Response { get; set; }
}
}
}
谢谢,我会考虑这些并不断更新。 – 2012-07-25 15:01:46
谢谢,我跟着第一个链接,它为我工作。现在我只有这个概念,它正在工作。验证和模型回发也很完美。我将在下面介绍我的实现。 – 2012-07-26 16:52:55