2012-10-18 64 views
2

我想從文本框中獲取textchanged值以更新我的控制器中。
查看如何獲取文本框更改MVC中的@ Html.ActionLink更新值

@Html.TextBox("Quantity", item.Quantity) 

    <a href="@Url.Action("Update", "Shopping", new { id = Request.QueryString["UserID"], productid = item.ProductID, qty ="Quantity", unitrate = item.Rate })">  
<img alt="updateitem" style="vertical-align: middle;" height="17px" src="~/Images/product_updates_image.png" 
title="update" id="imgUpdate" /> 
</a> 

,在我的控制與更新

public ActionResult Update(string id, string productid, int qty, decimal unitrate) 
     { 
      if (ModelState.IsValid) 
      { 
       int _records = UpdatePrice(id,productid,qty,unitrate); 
       if (_records > 0) 
       { 
        return RedirectToAction("Index1", "Shopping"); 
       } 
       else 
       { 
        ModelState.AddModelError("","Can Not Update"); 
       } 
      } 
      return View("Index1"); 
     } 

更新功能

public int UpdatePrice(string id,string productid, int qty, decimal unitrate) 
    { 
     con.Open();   
     var total = qty * unitrate; 
     SqlCommand cmd = new SqlCommand("Update [Cpecial_Shopping_Cart_tbl] Set Price='"+ total +"' where [User ID]='" + id + "' and [Product ID]='" + productid + "'", con); 
     cmd.Parameters.AddWithValue("@total", total); 
     return cmd.ExecuteNonQuery(); 
    } 

@Html.ActionLink通過文本框名稱數量變量。但是當文本框的值被改變時,值不會被傳入。

編輯:

最初從DB文本框中的值是1。當我改變文本框的值,它沒有得到更新,即使在表單發送相同的值被更新。

回答

2

您需要使用表單將視圖中的值(POST)發送到控制器。

這是一個粗略的例子:

@using (Html.BeginForm("Update", "Shopping", FormMethod.Post, new { @id = "myHtmlForm" })) 
{ 
    @Html.Hidden("id", Request.QueryString["UserID"]); 
    @Html.Hidden("productid", item.ProductID) 
    @Html.Hidden("unitrate", item.Rate) 

    @Html.TextBox("qty", item.Quantity) 

    <a href="javascript:document.getElementById('myHtmlForm').submit();"> 
     <img alt="updateitem" style="vertical-align: middle;" height="17px" src="~/Images/product_updates_image.png" 
      title="update" id="imgUpdate" /> 
    </a> 
} 
+0

@ Html.TextBox(「數量」,item.Quantity)開出數據庫值,而不是改變的文本框的值 – kk1076

+1

號即一個文本框。當用戶點擊圖片時,它會提交已更改的文本框值 –

+0

item.quantity僅從模型中獲取值,而不是文本框中輸入的文本 – kk1076