簡體   English   中英

MVC3使用JavaScript將模型視圖傳遞給控制器

[英]MVC3 Pass Model view to controller using javascript

我正在嘗試使用javascript將模型從視圖傳遞到控制器。 但是它返回空值。

這是我的看法Newcamp.chstml

 <input type="submit" value="Preview" id="ClickMe" class="cssLoginButton blue"/>

<script type="text/javascript">
 function OpenWindow(query, w, h, scroll) {
     var l = (screen.width - w) / 2;
     var t = (screen.height - h) / 2;

     winprops = 'resizable=0, height=' + h + ',width=' + w + ',top=' + t + ',left=' + l + 'w';
     if (scroll) winprops += ',scrollbars=1';
     var f = window.open(query, "_blank", winprops);
 }


 $(function () {
     $('#ClickMe').click(function () {
             OpenWindow('@Url.Action("NewCampEmail", "Camp",new{model = @Model})', 700, 700, true);
     });
 });
</script>

我的控制器動作NewCampEmail

    [HttpGet]
    [OutputCache(Location = OutputCacheLocation.None)]
    [Authorize]
    public ActionResult NewCampEmail(Models.NewCamp model)
    {            
        return ReturnModelWithEmailType(model,EmailType.NewCampEmail);
    }

模型中,我得到空值。 為什么我得到空值? 我的代碼有沒有變化? 我的模型在NewCamp.chstml中是相同的,即Models.Newcamp

您不能以這種方式通過javascript傳遞@Model。 該模型僅存在於服務器端,並且在HTTP響應發回之前用於頁面創建。 您當然可以從模型中獲取“值”,並將其作為競爭對象發送到控制器,但是無法以這種方式引用實際的模型本身。

如果您要引用單個Model而不是頁面上的屬性等,那么最好的選擇是看ockoutjs (無論如何都很好)。

簡而言之,頁面呈現后,@ Model消失了,只能通過頁面屬性或由@Model填充的javascript對象進行引用...

暫無
暫無

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

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