2016-03-03 7 views
0

У меня есть приложение MVC, в котором будут перечислены имена. (Имена находятся в базе данных сущности). Таймер находится рядом с первым именем в списке, и когда таймер заканчивается, имя удаляется из списка, а второе имя в списке будет двигаться вверх и таймер начнется (это продолжается до тех пор, пока имена не останутся). Мне также нужно добавить возможность удалять имена из базы данных EF. Есть идеи?Удалить запись из базы данных Entity Framework с помощью jQuery

JQuery

$(document).ready(function() { 
    startTimer(); 
    function startTimer() {   
     $('#timer').countdown({ 
      layout: '{mnn} : {snn}', timeSeparator: ':', until: 5, onTick: TimerColorChange, onExpiry: restartTimer 

     });    
    } 

    function restartTimer() {   
     $('#timer').countdown('destroy'); 

     //we delete the table's Info 
     var deleteRecord = $('#firstName').parent().remove(); 
     // deleteRecord.deleteRow(); //commented out since this also removes my timer 

     startTimer(); 
    } 

    function TimerColorChange(periods) { 
     var seconds = $.countdown.periodsToSeconds(periods); 
     if (seconds <= 3) { 
      $(this).css("color", "red"); 
     } else { 
      $(this).css("color", "black"); 
     } 
    } 


}); 

код модели:

public class UserName 
{ 

    public int Id { get; set; } 
    [Display(Name = "Full Name")] 
    public string FullName { get; set; } 

} 

public class UserNameDBContext : DbContext 
{ 

    public DbSet<UserName> UserNames { get; set; } 
} 

Вид:

@model IEnumerable<RangeTimer.Models.UserName> 

@{ 
    ViewBag.Title = ""; 
} 
<br /> 



<table class="table"> 
    <tr> 
     <th> 
     @Html.DisplayNameFor(model => model.FullName) 
    </th> 

    <th> 
     Time Remaining 
    </th> 

</tr> 

@foreach (var item in Model) { 
<tr> 
    <td id="firstName"> 
     @Html.DisplayFor(modelItem => item.FullName) 
    </td> 


    <td id="timer"> 

     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="timer"></span> 


    </td> 

</tr> 
} 

</table> 

Контроллер:

private UserNameDBContext db = new UserNameDBContext(); 



    // GET: UserNames 
    public ActionResult Index() 
    { 


     return View(db.UserNames.ToList()); 
    } 
+1

Множество идей, но я не собираюсь делать все исследования и работы для вас, вот некоторые мысли. (1) jQuery не может напрямую изменять базу данных. (2) Попросите jQuery сделать вызов действия контроллера и изменить действие контроллера на базу данных. –

+0

Благодарим вас за идеи. Будьте уверены, что я не прошу вас делать все исследования и работы. Я исследовал, почему именно поэтому я написал здесь спасибо. – user2448412

ответ

0

Я дам вам немного Exemple:

1) Добавить способ удалить имя пользователя в контроллере

// GET: Delete 
public JsonResult DeleteName(string name) 
{ 
    //Delete your user from your context here 
    return Json(true, JsonRequestBehavior.AllowGet); 
} 

2) в вашем JavaScript вызвать эту функцию с помощью AJAX запроса:

function restartTimer() {   
    $('#timer').countdown('destroy'); 

    //we delete the table's Info 
    var deleteRecord = $('#firstName').parent().remove(); 
    // deleteRecord.deleteRow(); //commented out since this also removes my timer 
    var action ='@Url.Action("DeleteName","Controller")'; 

    $.get(action+"?name="+nameToDelete).done(function(result){ 
     if(result){ 
     // your user is deleted 
     } 
    }) 


    startTimer(); 
}