无法识别为刷新指定的对象

时间:2012-01-19 08:29:32

标签: c# asp.net-mvc linq-to-sql

我有这样的更新功能:

public void Update(HomeBanner homebanner)
    {
        homebanner.EnsureValid();
        DataSource.DataContext.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, homebanner);
        DataSource.DataContext.SubmitChanges();
    }

我写了一个更新控制器

[AcceptVerbs(HttpVerbs.Post)]
    //[ValidateAntiForgeryToken]
    [ValidateInput(false)]
    public ActionResult ManageImages(int ? id,FormCollection form)
    {
        HomeBanner homebanner= BannerRepository.RetrieveById(id);
        this.TryUpdateModel(homebanner);
        string photoName = saveImage("photo");
        if (photoName != string.Empty)
        homebanner.ImageID = photoName;
        BannerRepository.Update(homebanner);
        return RedirectToAction("list", "Admin");

    }

然后是视图:

<% using (Html.BeginForm("ManageImages", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
   {%>
<h3>Manage Images</h3>
         <div class="label-field">
        <label for="ID">Chọn vị trí:</label>
         <%= Html.DropDownList("ID", DataHelper.Banner().ToList().ToSelectList("value", "name",Model.HomeBanner.ID.ToString()))%>
         </div>
        <div class="label-field">
        <label for="photo">
            Chọn hình</label>
        <input type="file" name="photo" value=""/>
        </div>
        <div class="label-field">
        <label for="Link">
            Liên kết</label>
        <input type="text" name="Link"/>
        </div>
        <p>
            <input type="submit" value="Lưu" />
        </p>
<% } %>

它也获取数据,但更新步骤不成功:它标记在这里

DataSource.DataContext.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, homebanner);

并抛出异常:无法识别为刷新指定的对象。 我不知道为什么,我在调试时看到数据填充到对象。 Plz有人帮助我!

1 个答案:

答案 0 :(得分:0)

我遇到了这个错误,因为我试图更新一个刚创建的对象,该对象尚未存在于数据库中。