2013-01-23 143 views
0

我有一個按鈕叫在我看來,像這樣的MVC控制器不控制視圖

<form> 
    <div class="field"> 
     <label for="product-name">Product Name</label><br /> 
     @Html.TextBoxFor(x=> x.Name, new {id="product-name",required="required"}) <br /> 
     <span class="helper">Give your product a name.</span> 
     @ViewBag.mm 
    </div> 
    <div class="field"> 
     <label for="product-variety">Product Variety</label><br /> 
     <input id="product-variety" type="text" /><br /> 
     <span class="helper">Optionally, give your product a variety.</span> 
    </div> 
    <div class="field"> 
     <label for="product-description">Description</label><br /> 
     <input id="product-description" type="text" /><br /> 
     <span class="helper">Add an optional description to help identify your product.</span> 
    </div> 
    <div class="field"> 
     <label for="product-comments">Comments</label><br /> 
     <textarea id="product-comments"></textarea><br /> 
     <span class="helper">Add any further information or comments relating to this product.</span> 
    </div> 
    <input id="product-save-return" type="submit" value="Add Product and Return to Products" class="green-button" /> <input id="product-save-associate" type="button" value="Add Product and Associate with Sites" class="green-button" /> <input id="file-cancel" type="button" value="Cancel" class="green-button" /> 

,並在控制器我有這樣

[HttpPost] 
public ActionResult Add(Product product) 
{ 
    SupplierContext db = new SupplierContext(); 
    Response.Write("Inside"); 
    ViewBag.mm = "xyz"; 
    if (ModelState.IsValid) 
    { 
     product.Key = Guid.NewGuid(); 
     product.Type = ProductType.Chemical; 
     product.Status = EntityStatus.Default; 
     db.Products.Add(product); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 

    return View(product); 
} 

功能,但是當我點擊按鈕,控制器中的功能不起作用。

+0

你可以發佈其餘的視圖嗎?您的提交按鈕應該位於HTML中。 –

+0

我已更新代碼與視圖 –

回答

1

您的按鈕是否在表格/動作中?在剃刀它僅僅只是下面的語法中添加你的表單元素的情況:

@using (Html.BeginForm()) 
{ 
    <div class="field"> 
     <label for="product-name">Product Name</label><br /> 
     @Html.TextBoxFor(x=> x.Name, new {id="product-name",required="required"}) <br /> 
     <span class="helper">Give your product a name.</span> 
     @ViewBag.mm 
    </div> 
    <div class="field"> 
     <label for="product-variety">Product Variety</label><br /> 
     <input id="product-variety" type="text" /><br /> 
     <span class="helper">Optionally, give your product a variety.</span> 
    </div> 
    <div class="field"> 
     <label for="product-description">Description</label><br /> 
     <input id="product-description" type="text" /><br /> 
     <span class="helper">Add an optional description to help identify your product.</span> 
    </div> 
    <div class="field"> 
     <label for="product-comments">Comments</label><br /> 
     <textarea id="product-comments"></textarea><br /> 
     <span class="helper">Add any further information or comments relating to this product.</span> 
    </div> 
    <input id="product-save-associate" type="button" value="Add Product and Associate with Sites" class="green-button" /> <input id="file-cancel" type="button" value="Cancel" class="green-button" /> 
    <input id="product-save-return" type="submit" value="Add Product and Return to Products" class="green-button" /> 
} 

這可能是爲什麼它不拿起控制器的功能。你可以在javscript與AJAX後這樣做太...

+0

輝煌!有用。謝謝你5分鐘後選擇正確的答案.. –

+0

沒問題,如果你需要一個如何用Javascipt/Ajax做的例子,讓我知道,我可以寫一個。雖然如果簡單地進行後操作是視圖模型/包包含您需要處理的數據的目標 - 那會做到這一點:) –

0

你也可以使用一個ActionLink的:

@Html.ActionLink("Add Product and Return to Products", "Add", "YourController") 

雖然這將是一個鏈接,而不是一個按鈕。