2012-11-02 111 views
1

我製作了一個關於日曆的自定義控制器。但是一個div需要附加到body上。我搜索,但一無所獲。下面的代碼是我實現的作品,但不是很好。我知道,div應該放在body的末尾,就像jquery $('body').append('div')但我不知道如何在MVC helper中編寫代碼。ASP.NET MVC將div附加到主體

public static MvcHtmlString CalendarTextBox(this HtmlHelper helper, string name, DateTime? value, DateTime start, DateTime max, string nextTriggerId, object htmlAttributes = null) 
      { 
       var result = helper.TextBox(name, value, htmlAttributes); 
       var str = result.ToHtmlString().Replace(@"/>", string.Format(@" mod=""calendar|notice"" 
     mod_notice_tip=""yyyy-mm-dd"" 
     mod_calendar_rangeStart=""{0}"" 
     mod_calendar_rangeEnd=""{1}"" 
     mod_calendar_focusNext=""{2}"" //>", start.ToString("yyyy-MM-dd"), max.ToString("yyyy-MM-dd"), nextTriggerId)); 

       if (null == helper.ViewData["calendar"]) 
       { 
        str += string.Format(
         @"<div style=""HEIGHT: 0px""id=""jsContainer""class=""jsContainer""><div style=""DISPLAY: none""id=""jsHistoryDiv""></div><textarea style=""DISPLAY: none""id=""jsSaveStatus""></textarea><div style=""Z-INDEX: 999; POSITION: absolute; DISPLAY: none; OVERFLOW: hidden"" 
    id=""tuna_alert""></div><div style=""Z-INDEX: 120; POSITION: absolute; VISIBILITY: hidden"" 
    id=""tuna_jmpinfo""></div><div style=""Z-INDEX: 120; POSITION: absolute; DISPLAY: none""id=""tuna_calendar"" 
    class=""tuna_calendar""></div></div><SCRIPT type=text/javascript charset=utf-8 src=""{0}/js/datepicker/tuna_100324_jsLoader.js""></script><script type=""text/javascript"">var JL=new CtripJsLoader();var files=[[""{0}/js/datepicker/tuna_100324_index.js"",""utf-8"",true]];JL.scriptAll(files);</script>", 
         Define.ASSET_PATH); 
        helper.ViewData["calendar"] = 1; 
       } 
       return MvcHtmlString.Create(str); 
      } 

回答

1

注入$('body').append('div');線到生成的HTML和巢文檔ready函數內一個JavaScript塊中的語句:

// ... 
str += string.Format(
    @"<script type=""text/javascript"">$(document).ready(function() { 
    $('body').append('div'); } </script>"); 

helper.ViewData["calendar"] = 1; 
// ... 
+0

是啊,我發現that.But是否有與C#代碼的方法呢? –