मेरे सिर कुछ MVC और Linq का उपयोग कर मूल सिद्धांतों दौर प्राप्त करने के लिए मैं करने के लिए एक रूपांतरण पर काम कर रहा हूँ SQL करने के लिए स्टीफन वाल्थर के TaskList application:MVC बल्क संपादन - एसक्यूएल सूची सहेजें Linq
मैं एक थोक प्रणाली संपादित करें का उपयोग कर जोड़ रहा Steve Sanderson's blog में वर्णित अवधारणाएं।
यह सभी अपेक्षित काम करता है, हालांकि, मुझे अपनी लौटाई गई सूची की बचत में समस्या हो रही है। मेरी थोक सूची में पोस्ट लौटाई गई सूची के माध्यम से loops और कार्य की मेरी LinqToSql डीबी सूची में प्रत्येक आइटम अद्यतन।
मेरे BulkEdit दृश्य ViewPage<List<TaskList.Models.Task>>
विरासत और इस प्रकार है:
<%
using (Html.BeginForm())
{
%>
<div id="items">
<%
foreach (var task in ViewData.Model)
{
Html.RenderPartial(
"TaskEditor",
task,
new ViewDataDictionary(ViewData)
{
{"prefix", "tasks"}
}
);
}
%>
</div>
<input type="submit" value="Save changes" />
<%
}
%>
TaskEditor नियंत्रण System.Web.Mvc.ViewUserControl<Models.Task>
विरासत और इस तरह दिखता है:
<div>
<%= Html.Hidden(ViewData["prefix"] + ".index", ViewData.Model.Id) %>
<% var fieldPrefix = string.Format("{0}[{1}].", ViewData["prefix"], ViewData.Model.Id); %>
<%= Html.Hidden(fieldPrefix + "Id", ViewData.Model.Id) %>
Description:
<%= Html.TextBox(fieldPrefix + "TaskDescription", ViewData.Model.TaskDescription)%>
Date:
<%= Html.TextBox(fieldPrefix + "EntryDate", ViewData.Model.EntryDate.ToString("o"))%>
Completed:
<%= Html.CheckBox(fieldPrefix + "IsCompleted", ViewData.Model.IsCompleted)%>
</div>
नियंत्रक जाओ और पोस्ट तरीके इस प्रकार हैं:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult BulkEdit()
{
var tasks = from t in db.Tasks orderby t.EntryDate descending select t;
return View(tasks.ToList());
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult BulkEdit(IList<Task> tasks)
{
foreach(Task task in tasks)
{
foreach(Task dbTask in db.Tasks)
{
if (dbTask.Id == task.Id)
{
dbTask.TaskDescription = task.TaskDescription;
dbTask.EntryDate = task.EntryDate;
dbTask.IsCompleted = task.IsCompleted;
}
}
}
db.SubmitChanges();
return RedirectToAction("Index");
}
मेरा सवाल है, यह भी लगता है जटिल और मैंने अभी तक सूची में जोड़े गए या हटाए गए कार्यों के लिए जिम्मेदार नहीं ठहराया है। मुझे क्या करना पसंद करेंगे
db.Tasks = tasks;
की तरह कुछ है और Linq बाहर काम करने के कौन-कौन से बदल दिया है और कौन-से नए/पुराने हैं अपने सभी जादू करते हैं।
क्या यह संभव है? या क्या मैं जल्द ही लिंक से थोड़ा अधिक उम्मीद कर रहा हूं?