Как работает метод UpdateModel в asp.net mvc 2 - PullRequest
0 голосов
/ 04 октября 2010

Я хочу знать, как работает метод UpdateModel ().Я просто знаю об этом для обновления данных текущей модели.а как именно работает?Потому что, хотя я использую UpdateModel () в методе контроллера редактирования, есть функции загрузки файлов.Я держу путь загруженного файла в моей базе данных.но после выполнения метода UpdateModel значение пути заменяется на «System.Web.HttpPostedFileWrapper».почему это должно произойти: Код:

 if (!String.IsNullOrEmpty(Request.Files["TDSCertificatePath"].FileName))
                {
                    TrustTrusteeMapping objTrustTrusteeMapping = trust_trustee_mapping_management.GetTrustTrusteeMappingById(objTDSDetail.TrustTrusteeMappingId);
                    string TrustTrusteeMappingName = objTrustTrusteeMapping.Trust.TrustName + "_" + objTrustTrusteeMapping.TrusteeMaster.FullName;
                    HttpPostedFileBase fileToUpload = Request.Files["TDSCertificatePath"];
                    objTDSDetail.TDSCertificatePath = CommonFunctions.UploadFile("TDSCertificatePath", "Content\\TDSCertificate\\", TrustTrusteeMappingName, fileToUpload);
                    fileToUpload = null;
                    objTrustTrusteeMapping = null;
                }

                UpdateModel(objTDSDetail);//After executes this the value of objTDSDetail.TDSCertificatePath changes as I said before.

1 Ответ

1 голос
/ 07 октября 2010

Почему вы беспокоитесь об этом методе?Использование модели представления, переданной в качестве аргумента действия, намного проще:

public class MyViewModel
{
    public int TrustTrusteeMappingId { get; set; }
    public HttpPostedFileBase TDSCertificatePath { get; set; }
}

А в вашем методе действия:

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    // use the model here whose properties are bound from the POST request
    if (model.TDSCertificatePath.ContentLength > 0)
    {
        // a TDSCertificatePath was provided => handle it here
    }
    return RedirectToAction("success");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...