0

私はこの2つを持っていますViewModels

public class AboutViewModel : ViewModel
{
    public override long Id { get; set; }        
    public override string PageTitle { get; set; }        
    public override string TitleDescription { get; set; }        
    public override string ContentTitle { get; set; }
    public virtual AboutItemViewModel AboutItem { get; set; }
}

public class AboutItemViewModel
{
    public long Id { get; set; }

    [AllowHtml]        
    public string Content { get; set; }
    public string ImageUrl { get; set; }
    public HttpPostedFileBase FileToUpload { get; set; }
}

Here is my controller:

    [ValidateInput(false)]
    [ValidateAntiForgeryToken, HttpPost]
    public ActionResult Create(long? siteid, long? cid, AboutViewModel model)
    {
        return View(model);
    }

これが私の見解です:

@using (Html.BeginForm("Create", "About", new { siteid = ViewData["siteid"], cid = ViewData["cid"] },FormMethod.Post,new { enctype = "multipart/form-data", @class = "form-horizontal rtl", autocomplete = "off" }))
{
     <div class="controls">
       <input type="file" name="FileToUpload" id="FileToUpload" style="margin-right: -9px;">
     </div>
     <div class="controls">
        @Html.ValidationMessageFor(o => o.AboutItem.FileToUpload, "", new { id = "spanfile", @class = "alert alert-block alert-error span3 pull-right", style = "margin-right: 160px;" })
     </div>   
     <div class="control-group pull-left">
        <button type="submit" class="btn btn-large" data-toggle="button">Save</button>
    </div> 
}

ファイルをバインドしFileToUploadてnullを返さないようにする方法は?

Except: それをメインに置くとAboutViewModel、正しい値が返されます。

4

1 に答える 1