curiousity
curiousity

Reputation: 4741

ViewBag for video upload?

I am working with sample from codeproject http://www.codeproject.com/Tips/1011040/Upload-and-Delete-Video-File-to-Microsoft-Azure-Bl

I have created an index.cshtml in the way of that is

@model List<string>
@{
 ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm("Add", "Blob", FormMethod.Post, new
{enctype = "multipart/form-data" }))
{
 <div>
 <input type="file" name="pic" id="pic" />
 <input type="submit" value="Upload Now" id="s1" />
 </div>
}
<ul>
 @foreach (var item in Model)
 {
 <li>

 <input type="button" name="b1" id="b1"
value="Delete"
 onclick="Remove('@item')" />
 <video src="@item" height="200" width="200" controls />
 </li>
 }
</ul>
@section scripts{
 <script>
 function Remove(x) {
 alert(x);
 var uri = "/Blob/remove";
 $.post(uri, { name: x }, function (y) {
 window.location.href = "/blob/index";
 alert(y);
 });
 }
</script>}

and my Controller class is :

public class BlobsController : Controller
    {
        //
        // GET: /Blobs/
        BlBlobs objbl = new BlBlobs();

        public ActionResult Index()
        {
            //return View();
            return View(objbl.GetBlobList());
        }

        [HttpPost]
        public ActionResult Add(HttpPostedFileBase pic)
        {
            objbl.AddBlob(pic);
            return RedirectToAction("Index");
        }
        [HttpPost]
        public string Remove(string name)
        {
            objbl.DeleteBlob(name);
            return "Blob Removed Successfully";
        }

    }

That give me pretty nice browse/upload form, but fails on upload click with 404 error. The question is - how to call the add method correctly in this index.cshtml file?

Upvotes: 0

Views: 51

Answers (1)

Coding Flow
Coding Flow

Reputation: 21881

Your controller is called BlobsController so that would give you a route of /blobs/{action} with the default route, however in your view your actions are looking for a controller called blob. Either change the name of your controller

public class BlobController : Controller
{
    //...
}

Or update your views to use the correct controller name.

Html.BeginForm("Add", "Blobs", FormMethod.Post, new
{enctype = "multipart/form-data" }))

Upvotes: 1

Related Questions