【问题标题】:Can I change the parameter or is the action static/"locked down"?我可以更改参数还是动作是静态的/“锁定”?
【发布时间】:2014-05-02 11:52:15
【问题描述】:

我的代码有效,我可以上传文件。

但是我如何将typeNavn 设置为其他运行时,所以该值取决于页面上选择的witch tap。?

我想将typeNavn 设置为“billeder”或“dokumenter”。现在它总是来自ViewBag.typeNavn 的“计费者”,这可能吗?如何?

动作是否如此静态,以至于我无法更改其运行时的任何参数?我尝试过使用回调、JavaScript 变量和 Razor 变量。它要么对我不起作用,要么不会改变它的第一个值。

var upload = $('#upload').wijupload(
{
    // Note: the next two lines must be on one line for it to work.
    // It's only two on SO so we don't have the x-scrollbar.
    action: '@CleanHtml.Clean(Html,@Url.Action( "UploadFiles",  "Dokument",  
                                          new { typeNavn = ViewBag.typeNavn } ))'
});

【问题讨论】:

  • CleanHtml.Clean有什么用?
  • 它处理特殊的dansih字母,如'æ'、'ø'和'å'。

标签: javascript c# asp.net-mvc callback dom-events


【解决方案1】:

您需要一个可以动态更改的 JavaScript 变量,然后将其用作action url 的一部分。

var typeNavn = ''; // Declare this somewhere. This is updated by some means.

var cleanHtml = '@CleanHtml.Clean(Html)'; // I don't know what Clean() does.

var upload = $('#upload').wijupload(
{
    // Note: the next two lines must be on one line for it to work.
    // It's only two on SO so we don't have the x-scrollbar.
    action: '/UploadFiles/Dokument?typeNavn=' + typeNavn)'
});

OK 上面代码的布局可能不是你需要的(我不知道cleanHtml 应该是什么),但是使用变量typeNavn 的核心思想是这里的关键。您需要一些方法来更新该变量以反映所选的类型,即某些内容的下拉列表。

【讨论】:

  • 我在写 SO 之前尝试过这个想法。它失败了,但可能是因为 CleanHtml 助手。我会再试一次。看起来很有希望。
【解决方案2】:

有点不清楚...您是否有要更改 typeNavn 的收音机/复选框/等,或者您想在控制器中设置它吗? Url.Action 将呈现一个字符串,您当然可以使用 javascript 更改该字符串。但是,您在什么情况下使用它有点不清楚。

只是猜测你想要这样的东西:

$(".list").change(function(){
    var list = $(this);
    var url = baseUrl + "?typeNavn=" + list.val(); // How you get baseUrl variable is up to you
    var upload = $('#upload').wijupload(
    {
        action: url
    });
});

【讨论】:

    【解决方案3】:

    您可以做的一件事是在加载视图时将控制器操作中的 TabName 作为参数传递。并相应地设置 viewbag 的值。所以这不会是静态的并且可以完美地工作。

    第二种方式,你可以通过jquery更新查询字符串参数名称

    【讨论】:

      【解决方案4】:

      您可以使用一个占位符值,该值可以使用.replace() 方法替换为任何所需的值。这是伪代码。在示例中,我使用 -1 作为占位符值

      代码

      var typeNavn = '@ViewBag.typeNavn';
      var action = '@CleanHtml.Clean(Html, @Url.Action( "UploadFiles",  "Dokument",  
                                                new { typeNavn = -1} ))'; //Really have no idean
      
      //Here you can use -1 as place holder which you can replace using JavaScript like
      action = action.replace('-1', typeNavn); 
      
      var upload = $('#upload').wijupload(
      {
          action: action
      });
      

      注意:我不知道CleanHtml.Clean

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-31
        • 2012-08-31
        • 2023-03-16
        • 2017-08-19
        相关资源
        最近更新 更多