0

ASP.Net MVC 4 で _PartialView をロードすることは可能ですか。コンテンツとともにロードすることは可能です。

var defaultInfobox = new Microsoft.Maps.Infobox(map.getCenter(), infoboxOptions );    
 map.entities.push(defaultInfobox);
 defaultInfobox.setHtmlContent('<div id="infoboxText" style="background-color:White; border-style:solid;border-width:medium; border-color:DarkOrange; min-height:100px;width:240px;"><b id="infoboxTitle" style="position:absolute; top:10px; left:10px; width:220px;">myTitle</b><a id="infoboxDescription" style="position:absolute; top:30px; left:10px; width:220px;">Description</a></div>'); 

しかし、cshtml ビューを使用した例は見つかりませんでした。

アップデート:

 var pushpinOptions = { icon: '../images/BingMap/discussion-icon-ny.png', width: 30, height: 40 };
                    var latLon = new Microsoft.Maps.Location(location.latitude, location.longitude);
                    var pin = new Microsoft.Maps.Pushpin(latLon, pushpinOptions);
                    pin.Title = name;//usually title of the infobox
                    pin.Description = set; //information you want to display in the infobox
                    pinLayer.push(pin);//add pushpin to pinLayer
                    Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox);
4

1 に答える 1

1
  1. ステップ: HTML を部分ビューに入れる
  2. ステップ: JavaScriptModel のインストールと統合 ( http://jsm.codeplex.com )
  3. ステップ: Controller Base に次のメソッドが必要です。

    public string RenderPartialViewAsString(string partialViewName, object model = null)
    {
        if (partialViewName == null)
            throw new ArgumentNullException("partialViewName");
    
        ViewDataDictionary viewData = new ViewDataDictionary(model);
    
        using (StringWriter writer = new StringWriter())
        {
            ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, partialViewName);
    
            if (viewResult == null || viewResult.View == null)
                throw new InvalidOperationException(string.Format("Could not find partial view with name '{0}'", partialViewName));
    
            ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, viewData, TempData, writer);
            viewResult.View.Render(viewContext, writer);
    
            return Regex.Replace(writer.ToString(), @"[\t\n\r]", string.Empty, RegexOptions.Compiled);
        }
    }
    
  4. ステップ: 部分ビューをいつでも JavaScript 変数に追加できるようになりました。たとえば、コントローラーアクションに次のように記述できます。

    this.AddJavaScriptVariables("MyJavaScriptVariable", RenderPartialViewAsString("MyBingPartialView"));
    
  5. ステップ: js.file を編集します。

    defaultInfobox.setHtmlContent(MyJavaScriptVariable);
    
于 2013-01-10T09:13:44.773 に答える