簡體   English   中英

MVC-我可以在視圖中設置模型屬性並從腳本中獲取值嗎?

[英]MVC - Can I set a model attribute in the view and get the value form a script?

這是返回上述視圖的Controller:

    public PartialViewResult Day()
    {
        Day model = new Day();
        return PartialView("_Day", model);
    }

    [HttpPost]
    public PartialViewResult Day(Day model)
    {
        return PartialView("_Day", model);
    }

閱讀問題后,我同時編寫了Get和Post方法。 請注意,我尚未在Controller中設置模型。

然后我有自己的看法:

@model Timing.Models.Day

@{
    Timing.Models.Day d = new Timing.Models.Day();
    d.UserId = "some value";
}

這段代碼運行良好:當我去檢索或顯示d.UserId我得到了正確的值。
此外,我在同一視圖中有一個腳本。

<script>
    function getUserId() {
        //some code that gets a string
        return userId;
    }
</script>

而且此腳本也可以正常工作。
我正在尋找解決方案,這是我所能找到的最好的解決方案:

@{
    Timing.Models.Day d = new Timing.Models.Day();
    d.UserId = Page.ClientScript.RegisterStartupScript(this.GetType(), "Getuser", "getUserId()", true);
}

但是由於某些null而無法正常工作(盡管我無法理解什么是空值)。
有辦法解決這個問題嗎?

對於那些問的人,我使用腳本是因為我要設置的值是html元素之一(這是我的相關問題)。
謝謝!

在JavaScript中聲明您想要的變量

@{
  var useridForjs = model.property // access model and set useridForjs 
}

在javascript中使用

<script>
function getUserId() {
    //some code that gets a string

  var myserversidevarvalue = '@useridForjs'; // here myserversidevarvalue will store value..
    return userId;
}
</script>

讓自己輕松一點,並將您的ID注入到一個隱藏的表單字段中,可以很容易地通過javascript獲取。 將此添加到您的視圖:

 Html.HiddenFor(model.userId)

然后像這樣訪問它:

 function getUserId() {
    return $('#userId').val();
}

暫無
暫無

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

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