Friday, December 12, 2014

cool button


  1. background-color#e7e7e7;
  2. box-shadow0 0 2px rgba(0,0,0,.2), inset 0 14px 16px rgba(255,255,255,.75), inset 0 0 7px #fff;
  3. padding.8em 0;
  4. displayblock;
  5. -moz-border-radius.3em;
  6. -webkit-border-radius.3em;
  7. border-radius.3em;
  8. cursorpointer;
  9. bordernone;
  10. color#646464;
  11. text-transformuppercase;
  12. text-aligncenter;
  13. vertical-alignmiddle;

Friday, December 5, 2014

Could not load file or assembly … The parameter is incorrect

Looks like a corrupted assembly being referenced.
Clear both:
  1. the \bin folder of your project
  2. the temp folder (should be C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files in windows 7)
and see if the error still happens


Depending on if your are running X64 you might need to clean up a couple more spots. Just cleaning up my user directory was not enough.
  1. %TEMP%\Temporary ASP.NET Files
  2. C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
  3. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  4. C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files
  5. C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
This list will grow as if you have other versions of the framework installed.

Wednesday, December 3, 2014

install a windows service

You can install the service by adding this code (in the program file, Program.cs) to install itself when run from the commandline using specified parameters:
/// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            if (System.Environment.UserInteractive)
            {

                if (args.Length > 0)
                {
                    switch (args[0])
                    {
                        case "-install":
                            {
                                ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location });
                                break;
                            }
                        case "-uninstall":
                            {
                                ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
                                break;
                            }
                    }
                }
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[] { new MyService() };
                ServiceBase.Run(ServicesToRun);
            }
        }

Tuesday, December 2, 2014

debug the windows servie

put it in onstart method of a windows service to launch a debugger
System.Diagnostics.Debugger.Launch();

Thursday, November 13, 2014

Render a mvc view as a string

Here's what I came up with, and it's working for me. I added the following method(s) to my controller base class. (You can always make these static methods somewhere else that accept a controller as a parameter I suppose)
MVC2 .ascx style
protected string RenderViewToString<T>(string viewPath, T model) {
  ViewData.Model = model;
  using (var writer = new StringWriter()) {
    var view = new WebFormView(viewPath);
    var vdd = new ViewDataDictionary<T>(model);
    var viewCxt = new ViewContext(ControllerContext, view, vdd,
                                new TempDataDictionary(), writer);
    viewCxt.View.Render(viewCxt, writer);
    return writer.ToString();
  }
}
Razor .cshtml style
public string RenderRazorViewToString(string viewName, object model)
{
  ViewData.Model = model;
  using (var sw = new StringWriter())
  {
    var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,
                                                             viewName);
    var viewContext = new ViewContext(ControllerContext, viewResult.View,
                                 ViewData, TempData, sw);
    viewResult.View.Render(viewContext, sw);
    viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
    return sw.GetStringBuilder().ToString();
  }
}
Edit: added Razor code.
share|improve this answer
12 
Rendering a view to a string is always "inconsistent with the whole routing concept", as it has nothing to do with routing. I'm not sure why an answer that works got a down vote. –  Ben Lesh Nov 3 '10 at 20:15 
3 
I think you might need to remove the "static" from the Razor version's method declaration, otherwise it can't find ControllerContext et al. –  Mike Jan 14 '12 at 5:10
3 
You'll need to implement your own method of removal for those superfluous whitespaces. The best way I can think of off the top of my head is to load the string into an XmlDocument, then write it back out to a string with an XmlWriter, as per the link I left in my last comment. I really hope that helps. –  Ben Lesh Feb 16 '12 at 14:01
2 
Hmm how should I do this using a WebApi Controller, any suggestions would be appreciated –  AlexanderMay 6 '13 at 16:41
2 
Hi everyone to use it with "Static" keyword for all controllers to make it common you have to make static class and inside it you have to put this method with "this" as parameter to "ControllerContext" . You can see here stackoverflow.com/a/18978036/2318354 it . –  Dilip0165 Sep 24 '13 at 9:49