如何在文档就绪.fileupload中分配值

时间:2015-03-06 20:11:09

标签: javascript jquery angularjs

我尝试在下面的URL中为videoid参数赋值,但是在我的C#MVC控制器中调用url方法时,videoid为null

  $(document).ready(function() {
      var videoid;
      videoid = $scope.VideoId.id;
      $scope.alertVidUpload.show = false;
      $scope.$apply();
      $("#fileupload").fileupload({
        dataType: "json",
        url: '/Videos/UploadVideoFile/?videoid=' + $("#videoIdVal").text(),
        autoUpload: true

控制器:方法:

[HttpPost]
public ActionResult UploadVideoFile(string videoid)
{
    var uploadedVideo = new VideoDetail();
    if (videoid != null)
    {
        uploadedVideo = _companyRepo.GetPostedVideo(Guid.Parse(videoid));
    }

我最初使用角度范围对象

中的值尝试了以下操作
url: '/Videos/UploadVideoFile/?videoid=' + $scope.VideoId.id

我非常确定$scope.VideoId.id有一个值,因为我在浏览器中看到它并看到了值。

我尝试在表单上创建隐藏标签,并将值分配给URL:

url: '/Videos/UploadVideoFile/?videoid=' + $("#videoIdVal").text(),

我可以在浏览器控制台$("#videoIdVal").text()中看到标签值,但是当控制器方法被点击时videoID为空

任何人都可以帮忙弄清楚为什么我无法将videoId参数值分配给文档就绪函数中的url?

1 个答案:

答案 0 :(得分:0)

我认为您可能遇到了模型绑定问题而不是JS问题。尝试在您的方法上使用[FromUri]https://msdn.microsoft.com/en-us/library/system.web.http.fromuriattribute%28v=vs.118%29.aspx)属性,如下所示:

[HttpPost]
public ActionResult UploadVideoFile([FromUri]string videoid)
{
  ....

您还可以在Chrome / Firefox中检查网络标签,以确保ID实际上已填充。如果它被正确传递,那么模型绑定就是你的问题。