2016-03-30 14 views
0

Lütfen bunu mümkün olduğunca iyi açıklamaya çalışalım.Özellik değerini artırmak için ActionLink'i kullanın

Bunu araştırmayı denedim ama aradığım şeyi elde etmek için doğru şekilde nasıl kelime söyleyeceğimi bilmiyorum. Şimdi kullanıcı tıkladığında değerini 1 artırır 'Win ekle' olduğunu gelmesini istiyorum (böylece kullanıcı bağlantıyı tıklattığında değer 5 olurdu) Ne Example

:

Sayfamda bu var .

Edit Görünümüme yönlendirilmek yerine bunun gerçekleşmesini istiyorum. Bir form doldurmak için anlamsız/sıkıcı gibi görünüyor, & formunu kaydetmem gereken tek şey bu sayıyı 1 olarak arttırmaktır.

Bunu yapmayı nasıl yaparım?

benim varsayılan kontrolör Edit eylem şey değişmemiştir yüzden burada:

public ActionResult Edit(int? id) 
    { 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 
     Team team = db.Teams.Find(id); 
     if (team == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(team); 
    } 

    // POST: Teams/Edit/5 
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598. 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Edit([Bind(Include = "ID,TeamName,TotalWins, SeriesWins")] Team team) 
    { 
     if (ModelState.IsValid) 
     { 
      db.Entry(team).State = EntityState.Modified; 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(team); 
    } 

Peki nasıl benim ActionLink bu sayının değerini arttırmak için kullanılır?

GÜNCELLEME:

HTML: Herhangi bir yardım takdir

@Html.ActionLink("Add Win", "Edit", "Teams", new { id = 2 }, null) 
<tr> 
       @foreach (var item in Model.Where(x => x.TeamName == "example")) 
       { 
        <td class="text-center"> 
         <span id="teamLabel"> 
          @item.SeriesWins 
         </span> 

        </td> 
       } 
      </tr> 

.

+1

Tam bir çözüm vermeyeceğim, ancak neden ajax kullanmıyorsunuz? Bu xhr nesnelerinin anlamı budur. Eğer gerçekten asp.net mvc kullanmak istiyorsanız, kısmi görünümleri okuyun. Toplam sayfayı tekrar oluşturmadan kısmi olarak gönderebilirsiniz. belki bu size yardımcı olabilir. – Trickzter

+0

javascript kullanarak artmalı ve formu gönderin – Fals

+0

@Fals HTML'mi dahil etmek için bir güncelleme gönderdim. Bunu js ile yapmayı nasıl yaparım ve formu gönderir misiniz? –

cevap

1

Alternatif bir çözüm buldum.

Denetleyicimde ActionResult özel bir id bulup, adrese vermem gereken özelliğe +1 ekledim.

public ActionResult AddOne(int id) 
    { 
     Team team = db.database.Find(id); 
     team.SeriesWins += 1; 
     UpdateModel(team); 
     db.SaveChanges(); 

     return RedirectToAction("Index"); 
    } 
İlgili konular