Попробуйте DotVVM .
Он не совместим с веб-формами, но разделяет его принципы (обратные передачи, элементы управления сервером и т. Д.), Решает их самые большие проблемы (чистый HTML, нетviewstate, тестируемые viewmodels) и поддерживает как полную .NET Framework (через OWIN), так и .NET Core.
Вам даже не нужно писать никакой javascript, он использует Knockout JS на фоне, платформа решаетвсе, что касается связи клиент-сервер.
Он также имеет приятную интеграцию с Visual Studio 2015 и имеет открытый исходный код.
Представления выглядят так:
<div class="form-control">
<dot:TextBox Text="{value: Name}" />
</div>
<div class="form-control">
<dot:TextBox Text="{value: Email}" />
</div>
<div class="button-bar">
<dot:Button Text="Submit"
Click="{command: Submit()}" />
</div>
И модель представления - это чистый класс C #.
public class ContactFormViewModel
{
public string Name { get; set; }
public string Email { get; set; }
public void Submit()
{
ContactService.Submit(Name, Email);
}
}