簡體   English   中英

c#來自javascript變量錯誤的變量分配(CS1002 :;預期)

[英]c # variable assignment from javascript variable error (CS1002:; expected)

我正在嘗試從ASP.Net MVC中的javascript變量分配ac#變量。 但是我收到“ CS1002 :;預期”錯誤。

  function openEditJoining(joining_id) {
           @{ 
               int joiningId = @:joining_id ;
           }
  }

C#和JS在不同的地方處理,因此您不能直接將JS中的變量分配給c#

其他選項:

  • 使用js將變量存儲在cookie中,如果來自c#,則進行訪問
  • 使用AJAX調用/表單提交等將請求發布到服務器。

C#代碼是服務器端代碼,這意味着它在服務器上運行。 JavaScript代碼在瀏覽器中運行。

整個周期如下:

請求進入->所有C#代碼都被執行->呈現的結果被發回

因此,您可以執行以下操作(在.cshtml ):

function openEditJoining(joining_id) {
    return @Model.JoiningId;
}

C#代碼將首先運行,並假設JoiningId = 56 ,然后返回的結果將是:

function openEditJoining(joining_id) {
    return "56";
}

這是完全有效的,因為首先執行服務器端代碼。 但是,您正在嘗試另一種方法,這是非法的。 一旦結果返回給客戶端,它就不是C#。 現在都是客戶端。

您可以做的是,可以使用查詢字符串或請求正文在請求中發送變量。 例如,以localhost:49976/[controllerName]/joinings?id=56身份發送請求,並在該控制器內部,將操作方法​​的簽名更改為:

public IActionResult Joinings(int id) {
}

現在, id參數將獲取在查詢字符串中發送的值。 當然,只要查詢字符串和method參數中定義的id就可以將id命名為任意名稱。 或者,您可以在請求正文中發送數據(例如,使用POSTPUT )。 希望能有所幫助。

為什么不從隱藏字段中獲得此值? https://jsfiddle.net/Alan_van_Buuren/7kg99kh3/

  <div class="container">
      <h3>Why don't get this value from a hidden field? like</h3>
      <p>I see your question in: https://stackoverflow.com/questions/46040155/c-variable-assignment-from-javascript-variable-error-cs1002-expected</p>
      <div>
        <div class="form-group">
          <label>Your value :</label>
          <input type="text" id="field" class="form-control" />
          <input type="hidden" id="yourFieldInModel" class="form-control" />
        </div>
        <button class="btn btn-info">Send to model...</button>
      </div>
      <p id="valueHidden">The value is: </p>
    </div>

    <script>
    //Method that assign your frontValue into a field in model    
    function getSome(valueFromModel) {
      // TODO: anything
      $('#yourFieldInModel').attr('value', valueFRomModel);
    }

    $(document).ready(function() {
      $('#field').on('change', function() {
        var thisValue = $(this).val();
        $('#valueHidden').text('The value is ' + thisValue);
        getSome(thisValue);
      });
    });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM