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);
}

但是当我单击按钮时,控制器中的功能不起作用。

您的按钮是否在表单/操作中?在 Razor 中,只需在以下语法中添加表单元素即可:

@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" />
}

这可能是它没有在控制器中拾取功能的原因。你也可以用 AJAX 帖子在 javscript 中做到这一点......

您还可以使用 ActionLink:

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

虽然这将是一个链接而不是一个按钮。

最新更新