我真的不知道該怎麼稱號給予了這個問題,但我會在這裏解釋:通部分查看問題Asp.Net MVC
我有一堆輸入字段的視圖一張桌子。表格中的每一行都代表一項任務,每一個工作日一欄,每個單元格中的輸入字段都會讓用戶輸入工作時間和日期。
然後我有一個提交按鈕來發布用戶想要保存的時間。但問題在於:每個時間段(作爲持有小時數的對象都被調用)也具有屬性Description,以便讓用戶編寫關於所報告的特定時間段的完成情況的描述。
那麼我怎樣才能獲得所選時間段輸入字段的描述屬性,並顯示在另一個「描述」輸入字段中,然後讓用戶修改描述並使用timesegment保存它?
這是我到目前爲止已經完成:
操作方法來獲得描述:
public ActionResult GetDescription(string name, int number, int year)
{
try
{
int taskId = Int32.Parse(name.SubstringAfter("Tasks[").Substring(0, 1));
int timeSegmentId = Int32.Parse(name.SubstringAfter("CurrentTimeSegments[").Substring(0, 1));
List<Task> tasks = _repository.GetCurrentTasks(number, year);
var description = tasks[taskId].CurrentTimeSegments[timeSegmentId].Description;
return Content(description);
}
catch (Exception)
{
return Content("");
}
}
的jQuery:
function getDescription() {
$('.hourInput').focus(function() {
var name = $(this).attr('name');
var number = '<%: Model.WeekNumber %>';
var year = '<%: Model.Year %>';
var url = '<%=Url.Action("GetDescription", "Timesheet") %>';
$.get(url, { name: name, number: number, year: year }, function (data) {
$('#description').val(data);
});
});
}
現在,你可以看到,我有解析輸入字段的名稱屬性以獲取我之後的對象,這看起來有點像黑客......但這是我能看到獲取這些信息的唯一途徑。所以我的問題是,是否有另一種更乾淨的方式來做到這一點?
UPDATE:
下面是一個創建嵌套的輸入域環路(完成每項任務的循環,然後每個任務的所有timesegments)的部分:
<% for (int i = 0; i < Model.Tasks.Count; i++)
{
var task = Model.Tasks[i];
%>
<tr class="taskrow">
<td>
<input type="button" value="Delete" id="<%:i %>" class="deletebutton" />
</td>
<td class="customer">
<%: task.Project.Customer.Name %>
</td>
<td class="project">
<%: task.Project.Name %>
</td>
<td class="task">
<%: task.Name %>
</td>
<% for (int j = 0; j < task.CurrentTimeSegments.Count; j++)
{ %>
<td>
<%: Html.TextBoxFor(model => model.Tasks[i].CurrentTimeSegments[j].TimeSpanHours, new { @class = "hourInput" })%>
<%: Html.ValidationMessageFor(model => model.Tasks[i].CurrentTimeSegments[j].TimeSpanHours)%>
</td>
<% } %>
<td class="hourSum"><%:task.WeekTaskHours %></td>
</tr>
<% } %>
注意,此代碼如果它很重要的話,它是處於局部的。
感謝您的回覆。這聽起來很有趣,我只是不確定我可以用我的代碼來做到這一點......正如你可以從我的更新中看到的那樣,輸入字段是在局部視圖中的一個循環中創建的。所以我不知道如何通過jQuery將數據添加到每個字段,因爲它正在此循環中創建? – Anders 2011-01-09 15:45:24