如何从Asp.net mvc2.0中删除主键值?

时间:2013-03-07 09:39:51

标签: asp.net-mvc asp.net-mvc-2

我写了一个如下方法:

[HttpPost]
    public ActionResult Create([Bind(Exclude = "ProductID")]Product product)
    {
        try
        {
            db.Products.AddObject(product);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

在mvc2中成功创建Create.aspx页面后。

我运行应用程序,之后如果我点击“创建新链接”

它也将打开带有Id的create.aspx。

如何从“我的页面”中删除ID。

获取方法是:

public ActionResult Create()

    {

        return View();

    } 

我的HTML页面如下:

创建

<% using (Html.BeginForm()) {%>

    <%: Html.ValidationSummary(true) %>

    <fieldset>

        <legend>Fields</legend>

        <div class="editor-label">

            <%: Html.LabelFor(model => model.ProductID) %>

        </div>

        <div class="editor-field">

            <%: Html.TextBoxFor(model => model.ProductID) %>

            <%: Html.ValidationMessageFor(model => model.ProductID) %>

        </div>

        <div class="editor-label">

            <%: Html.LabelFor(model => model.ProductName) %>

        </div>

        <div class="editor-field">

            <%: Html.TextBoxFor(model => model.ProductName) %>

            <%: Html.ValidationMessageFor(model => model.ProductName) %>

        </div>

        <div class="editor-label">

            <%: Html.LabelFor(model => model.Cost) %>

        </div>

        <div class="editor-field">

            <%: Html.TextBoxFor(model => model.Cost) %>

            <%: Html.ValidationMessageFor(model => model.Cost) %>

        </div>

        <div class="editor-label">

            <%: Html.LabelFor(model => model.Quantity) %>

        </div>

        <div class="editor-field">

            <%: Html.TextBoxFor(model => model.Quantity) %>

            <%: Html.ValidationMessageFor(model => model.Quantity) %>

        </div>

        <p>

            <input type="submit" value="Create" />

        </p>

    </fieldset>


<% } %>

<div>

    <%: Html.ActionLink("Back to List", "Index") %>

</div>

感谢所有人。

2 个答案:

答案 0 :(得分:0)

嗯,如何从您的视图中删除ID?只是。只需在View上删除它的声明即可。但这真的是你想要的吗?

例如,对于更新方案,您将需要Id。因此,如果你真的想删除你的ID,你应该在你的模型上做,所以:

product.ProductId = null;

答案 1 :(得分:0)

尝试将此属性添加到模型属性中。这将优先于在前端发生的事情。

 [HiddenInput(DisplayValue = false)]