diff --git a/src/Samples/Common/TextFileDiagnosticsInformationSender.cs b/src/Samples/Common/TextFileDiagnosticsInformationSender.cs
index 549cf03941..a0ab48a2ac 100644
--- a/src/Samples/Common/TextFileDiagnosticsInformationSender.cs
+++ b/src/Samples/Common/TextFileDiagnosticsInformationSender.cs
@@ -39,7 +39,7 @@ public Task SendInformationAsync(DiagnosticsInformation information)
File.AppendAllText(logFilePath, messages);
}
- return TaskUtils.GetCompletedTask();
+ return Task.CompletedTask;
}
private string FormatUnwrittenMessages(DiagnosticsInformation information)
diff --git a/src/Samples/Common/ViewModels/ComplexSamples/ButtonInMarkupControl/EnabledViewModel.cs b/src/Samples/Common/ViewModels/ComplexSamples/ButtonInMarkupControl/EnabledViewModel.cs
index d2ce250296..88df17babb 100644
--- a/src/Samples/Common/ViewModels/ComplexSamples/ButtonInMarkupControl/EnabledViewModel.cs
+++ b/src/Samples/Common/ViewModels/ComplexSamples/ButtonInMarkupControl/EnabledViewModel.cs
@@ -3,7 +3,6 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using DotVVM.Framework.Utils;
namespace DotVVM.Samples.BasicSamples.ViewModels.ComplexSamples.ButtonInMarkupControl
{
@@ -16,7 +15,7 @@ public class EnabledViewModel
public Task Flip()
{
Enabled = !Enabled;
- return TaskUtils.GetCompletedTask();
+ return Task.CompletedTask;
}
public class TestDto
diff --git a/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterErrorHandlingViewModel.cs b/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterErrorHandlingViewModel.cs
index 655a11c9e8..1930d950b0 100644
--- a/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterErrorHandlingViewModel.cs
+++ b/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterErrorHandlingViewModel.cs
@@ -29,7 +29,7 @@ protected override Task OnCommandExceptionAsync(IDotvvmRequestContext context, A
{
((ActionFilterErrorHandlingViewModel)context.ViewModel).Result = "error was handled";
context.IsCommandExceptionHandled = true;
- return TaskUtils.GetCompletedTask();
+ return Task.CompletedTask;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterPageErrorHandlingViewModel.cs b/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterPageErrorHandlingViewModel.cs
index bb74eaff91..d128678292 100644
--- a/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterPageErrorHandlingViewModel.cs
+++ b/src/Samples/Common/ViewModels/FeatureSamples/ActionFilterErrorHandling/ActionFilterPageErrorHandlingViewModel.cs
@@ -22,7 +22,7 @@ protected override Task OnPageExceptionAsync(IDotvvmRequestContext context, Exce
{
context.IsPageExceptionHandled = true;
context.RedirectToUrl("/error500");
- return TaskUtils.GetCompletedTask();
+ return Task.CompletedTask;
}
}
}
diff --git a/src/Samples/Common/ViewModels/FeatureSamples/ChildViewModelInvokeMethods/NastyChildViewModel.cs b/src/Samples/Common/ViewModels/FeatureSamples/ChildViewModelInvokeMethods/NastyChildViewModel.cs
index 1884ab6e2c..4f9cc0847f 100644
--- a/src/Samples/Common/ViewModels/FeatureSamples/ChildViewModelInvokeMethods/NastyChildViewModel.cs
+++ b/src/Samples/Common/ViewModels/FeatureSamples/ChildViewModelInvokeMethods/NastyChildViewModel.cs
@@ -13,19 +13,19 @@ public class NastyChildViewModel : DotvvmViewModelBase
public override Task Init()
{
InitCount++;
- return TaskUtils.GetCompletedTask();
+ return Task.CompletedTask;
}
public override Task Load()
{
LoadCount++;
- return TaskUtils.GetCompletedTask();
+ return Task.CompletedTask;
}
public override Task PreRender()
{
PreRenderCount++;
- return TaskUtils.GetCompletedTask();
+ return Task.CompletedTask;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Samples/Common/ViewModels/FeatureSamples/CsharpClient/CSharpClientViewModel.cs b/src/Samples/Common/ViewModels/FeatureSamples/CsharpClient/CSharpClientViewModel.cs
new file mode 100644
index 0000000000..6f70d03ea5
--- /dev/null
+++ b/src/Samples/Common/ViewModels/FeatureSamples/CsharpClient/CSharpClientViewModel.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using DotVVM.Framework.ViewModel;
+
+namespace DotVVM.Samples.Common.ViewModels.FeatureSamples.CsharpClient
+{
+ public class CSharpClientViewModel : DotvvmViewModelBase
+ {
+ public int Value { get; set; } = 1;
+
+ public int? ReadResult { get; set; }
+
+ public string LastConsole { get; set; }
+ }
+}
+
diff --git a/src/Samples/Common/ViewModels/FeatureSamples/CsharpClient/MarshallingViewModel.cs b/src/Samples/Common/ViewModels/FeatureSamples/CsharpClient/MarshallingViewModel.cs
new file mode 100644
index 0000000000..f67794b9ef
--- /dev/null
+++ b/src/Samples/Common/ViewModels/FeatureSamples/CsharpClient/MarshallingViewModel.cs
@@ -0,0 +1,62 @@
+#if CSHARP_CLIENT
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using DotVVM.Framework.ViewModel;
+using DotVVM.Samples.BasicSamples.CSharpClient;
+
+namespace DotVVM.Samples.Common.ViewModels.FeatureSamples.CsharpClient
+{
+ public class MarshallingViewModel : DotvvmViewModelBase
+ {
+
+ public byte ByteValue { get; set; } = 0;
+ public byte? NullableByteValue { get; set; } = null;
+ public sbyte SByteValue { get; set; } = 1;
+ public sbyte? NullableSByteValue { get; set; } = 2;
+ public short ShortValue { get; set; } = 3;
+ public short? NullableShortValue { get; set; } = 4;
+ public ushort UShortValue { get; set; } = 5;
+ public ushort? NullableUShortValue { get; set; } = 6;
+ public int IntValue { get; set; } = 7;
+ public int? NullableIntValue { get; set; } = 8;
+ public uint UIntValue { get; set; } = 9;
+ public uint? NullableUIntValue { get; set; } = 10;
+ public long LongValue { get; set; } = 11;
+ public long? NullableLongValue { get; set; } = 12;
+ public ulong ULongValue { get; set; } = 13;
+ public ulong? NullableULongValue { get; set; } = 14;
+ public float FloatValue { get; set; } = 1.23f;
+ public float? NullableFloatValue { get; set; } = null;
+ public double DoubleValue { get; set; } = 4.5678;
+ public double? NullableDoubleValue { get; set; } = 9999;
+ public decimal DecimalValue { get; set; } = 1000000m;
+ public decimal? NullableDecimalValue { get; set; } = 1000001m;
+ public DateTime DateTimeValue { get; set; } = new DateTime(2020, 1, 2, 3, 4, 5);
+ public DateTime? NullableDateTimeValue { get; set; } = null;
+ public DateOnly DateOnlyValue { get; set; } = new DateOnly(2020, 10, 11);
+ public DateOnly? NullableDateOnlyValue { get; set; } = new DateOnly(2020, 11, 12);
+ public TimeOnly TimeOnlyValue { get; set; } = new TimeOnly(6, 0, 5);
+ public TimeOnly? NullableTimeOnlyValue { get; set; } = null;
+ public TimeSpan TimeSpanValue { get; set; } = new TimeSpan(2, 3, 4, 5);
+ public TimeSpan? NullableTimeSpanValue { get; set; } = null;
+ public char CharValue { get; set; } = 'b';
+ public char? NullableCharValue { get; set; } = null;
+ public Guid GuidValue { get; set; } = new Guid("2EF427B2-889C-42A6-B6C8-781839A46825");
+ public Guid? NullableGuidValue { get; set; } = null;
+ public string StringValue { get; set; } = "bababa";
+ public ChildEnum EnumValue { get; set; } = ChildEnum.One;
+ public ChildEnum? NullableEnumValue { get; set; } = null;
+ public ChildObject ObjectValue { get; set; } = new ChildObject() { Int = 1, String = "abc" };
+ public ChildRecord RecordValue { get; set; } = new ChildRecord(2, "def");
+ public ChildObject[] ObjectArrayValue { get; set; } = new[] { new ChildObject() { Int = 1, String = "abc" }, new ChildObject() { Int = 3, String = "ghi" } };
+ public ChildRecord[] RecordArrayValue { get; set; } = new[] { new ChildRecord(2, "def"), new ChildRecord(4, "jkl") };
+ public int[] IntArrayValue { get; set; } = new[] { 2, 5 };
+ public double?[] NullableDoubleArrayValue { get; set; } = new[] { 3.0, (double?)null };
+ public string[] StringArrayValue { get; set; } = new[] { "abc", "def" };
+ public ChildRecord[] TaskValue { get; set; } = new[] { new ChildRecord(6, "mno"), new ChildRecord(8, "pqr") };
+ }
+}
+#endif
diff --git a/src/Samples/Common/Views/FeatureSamples/CsharpClient/CSharpClient.dothtml b/src/Samples/Common/Views/FeatureSamples/CsharpClient/CSharpClient.dothtml
new file mode 100644
index 0000000000..24151979d8
--- /dev/null
+++ b/src/Samples/Common/Views/FeatureSamples/CsharpClient/CSharpClient.dothtml
@@ -0,0 +1,48 @@
+@viewModel DotVVM.Samples.Common.ViewModels.FeatureSamples.CsharpClient.CSharpClientViewModel, DotVVM.Samples.Common
+@dotnet DotVVM.Samples.BasicSamples.CSharpClient.TestCsharpModule, DotVVM.Samples.BasicSamples.CSharpClient
+
+
+
+
+
+
+
+
+
+
+
+ Value:
+
+
+
+
+
+
+
+
+ {{value: ReadResult}}
+
+
+
+
+
+
+
+
+
+
+
+
+ Last console entry: {{value: LastConsole}}
+
+
+
+
+
+
diff --git a/src/Samples/Common/Views/FeatureSamples/CsharpClient/Marshalling.dothtml b/src/Samples/Common/Views/FeatureSamples/CsharpClient/Marshalling.dothtml
new file mode 100644
index 0000000000..422bedb1c0
--- /dev/null
+++ b/src/Samples/Common/Views/FeatureSamples/CsharpClient/Marshalling.dothtml
@@ -0,0 +1,197 @@
+@viewModel DotVVM.Samples.Common.ViewModels.FeatureSamples.CsharpClient.MarshallingViewModel, DotVVM.Samples.Common
+@dotnet DotVVM.Samples.BasicSamples.CSharpClient.TypeMarshallingModule, DotVVM.Samples.BasicSamples.CSharpClient
+
+
+
+
+
+
+
+
+
+
+ {{value: ByteValue}}
+
+
+
+ {{value: NullableByteValue}}
+
+
+
+ {{value: SByteValue}}
+
+
+
+ {{value: NullableSByteValue}}
+
+
+
+ {{value: ShortValue}}
+
+
+
+ {{value: NullableShortValue}}
+
+
+
+ {{value: UShortValue}}
+
+
+
+ {{value: NullableUShortValue}}
+
+
+
+ {{value: IntValue}}
+
+
+
+ {{value: NullableIntValue}}
+
+
+
+ {{value: UIntValue}}
+
+
+
+ {{value: NullableUIntValue}}
+
+
+
+ {{value: LongValue}}
+
+
+
+ {{value: NullableLongValue}}
+
+
+
+ {{value: ULongValue}}
+
+
+
+ {{value: NullableULongValue}}
+
+
+
+ {{value: FloatValue}}
+
+
+
+ {{value: NullableFloatValue}}
+
+
+
+ {{value: DoubleValue}}
+
+
+
+ {{value: NullableDoubleValue}}
+
+
+
+ {{value: DecimalValue}}
+
+
+
+ {{value: NullableDecimalValue}}
+
+
+
+ {{value: DateTimeValue}}
+
+
+
+ {{value: NullableDateTimeValue}}
+
+
+
+ {{value: DateOnlyValue}}
+
+
+
+ {{value: NullableDateOnlyValue}}
+
+
+
+ {{value: TimeOnlyValue}}
+
+
+
+ {{value: NullableTimeOnlyValue}}
+
+
+
+ {{value: TimeSpanValue}}
+
+
+
+ {{value: NullableTimeSpanValue}}
+
+
+
+ {{value: CharValue}}
+
+
+
+ {{value: NullableCharValue}}
+
+
+
+ {{value: GuidValue}}
+
+
+
+ {{value: NullableGuidValue}}
+
+
+
+ {{value: StringValue}}
+
+
+
+ {{value: EnumValue}}
+
+
+
+ {{value: NullableEnumValue}}
+
+
+
+ {{value: ObjectValue.Int}}, {{value: ObjectValue.String}}
+
+
+
+ {{value: RecordValue.Int}}, {{value: RecordValue.String}}
+
+
+
+ {{value: ObjectArrayValue[0].Int}}, {{value: ObjectArrayValue[0].String}}; {{value: ObjectArrayValue[1].Int}}, {{value: ObjectArrayValue[1].String}}
+
+
+
+ {{value: RecordArrayValue[0].Int}}, {{value: RecordArrayValue[0].String}}; {{value: RecordArrayValue[1].Int}}, {{value: RecordArrayValue[1].String}}
+
+
+
+ {{value: IntArrayValue[0]}}; {{value: IntArrayValue[1]}}
+
+
+
+ {{value: NullableDoubleArrayValue[0]}}; {{value: NullableDoubleArrayValue[1]}}
+
+
+
+ {{value: StringArrayValue[0]}}; {{value: StringArrayValue[1]}}
+
+
+
+ {{value: TaskValue[0].Int}}, {{value: TaskValue[0].String}}; {{value: TaskValue[1].Int}}, {{value: TaskValue[1].String}}
+
+
+
+
+
+
+
+
diff --git a/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs b/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs
index 936bcaa3d2..8908d72a3f 100644
--- a/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs
+++ b/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs
@@ -227,6 +227,8 @@ public partial class SamplesRouteUrls
public const string FeatureSamples_CompositeControls_BasicSample = "FeatureSamples/CompositeControls/BasicSample";
public const string FeatureSamples_CompositeControls_ControlPropertyNamingConflict = "FeatureSamples/CompositeControls/ControlPropertyNamingConflict";
public const string FeatureSamples_ConditionalCssClasses_ConditionalCssClasses = "FeatureSamples/ConditionalCssClasses/ConditionalCssClasses";
+ public const string FeatureSamples_CsharpClient_CSharpClient = "FeatureSamples/CsharpClient/CSharpClient";
+ public const string FeatureSamples_CsharpClient_Marshalling = "FeatureSamples/CsharpClient/Marshalling";
public const string FeatureSamples_CustomResponseProperties_SimpleExceptionFilter = "FeatureSamples/CustomResponseProperties/SimpleExceptionFilter";
public const string FeatureSamples_DateTimeSerialization_DateTimeSerialization = "FeatureSamples/DateTimeSerialization/DateTimeSerialization";
public const string FeatureSamples_DependencyInjection_ViewModelScopedService = "FeatureSamples/DependencyInjection/ViewModelScopedService";
diff --git a/src/Samples/Tests/Tests/Feature/CsharpClientTests.cs b/src/Samples/Tests/Tests/Feature/CsharpClientTests.cs
new file mode 100644
index 0000000000..fbfee7aaba
--- /dev/null
+++ b/src/Samples/Tests/Tests/Feature/CsharpClientTests.cs
@@ -0,0 +1,108 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using DotVVM.Samples.Tests.Base;
+using DotVVM.Testing.Abstractions;
+using Riganti.Selenium.Core;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace DotVVM.Samples.Tests.Feature
+{
+ public class CsharpClientTests : AppSeleniumTest
+ {
+ [Fact]
+ [Trait("Category", "aspnetcore-only")]
+ public void Feature_CsharpClient_CSharpClient()
+ {
+ RunInAllBrowsers(browser => {
+ browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_CsharpClient_CSharpClient);
+
+ var value = browser.Single("value", SelectByDataUi);
+ AssertUI.Value(value, "1");
+
+ // check console access
+ browser.Single("hello", SelectByDataUi).Click();
+ AssertUI.TextEquals(browser.Single("console", SelectByDataUi), "Hello world");
+
+ // read VM
+ browser.Single("read-vm", SelectByDataUi).Click();
+ AssertUI.TextEquals(browser.Single("read-vm-result", SelectByDataUi), "1");
+
+ // patch VM
+ browser.Single("patch-vm", SelectByDataUi).Click();
+ AssertUI.TextEquals(value, "30");
+ browser.Single("read-vm", SelectByDataUi).Click();
+ AssertUI.TextEquals(browser.Single("read-vm-result", SelectByDataUi), "30");
+
+ // call command
+ browser.Single("named-command", SelectByDataUi).Click();
+ AssertUI.TextEquals(value, "60");
+ });
+ }
+
+ [Theory]
+ [InlineData("MarshallByte", "0")]
+ [InlineData("MarshallNullableByte", "")]
+ [InlineData("MarshallSByte", "2")]
+ [InlineData("MarshallNullableSByte", "4")]
+ [InlineData("MarshallShort", "6")]
+ [InlineData("MarshallNullableShort", "8")]
+ [InlineData("MarshallUShort", "10")]
+ [InlineData("MarshallNullableUShort", "12")]
+ [InlineData("MarshallInt", "14")]
+ [InlineData("MarshallNullableInt", "16")]
+ [InlineData("MarshallUInt", "18")]
+ [InlineData("MarshallNullableUInt", "20")]
+ [InlineData("MarshallLong", "22")]
+ [InlineData("MarshallNullableLong", "24")]
+ [InlineData("MarshallULong", "26")]
+ [InlineData("MarshallNullableULong", "28")]
+ [InlineData("MarshallFloat", "2.46")]
+ [InlineData("MarshallNullableFloat", "")]
+ [InlineData("MarshallDouble", "9.1356")]
+ [InlineData("MarshallNullableDouble", "19998")]
+ [InlineData("MarshallDecimal", "2000000")]
+ [InlineData("MarshallNullableDecimal", "2000002")]
+ [InlineData("MarshallDateTime", "1/3/2020 3:04:05 AM")]
+ [InlineData("MarshallNullableDateTime", "")]
+ [InlineData("MarshallDateOnly", "Monday, October 12, 2020")]
+ [InlineData("MarshallNullableDateOnly", "Friday, November 13, 2020")]
+ [InlineData("MarshallTimeOnly", "7:00:05 AM")]
+ [InlineData("MarshallNullableTimeOnly", "")]
+ [InlineData("MarshallTimeSpan", "2.04:04:05")]
+ [InlineData("MarshallNullableTimeSpan", "")]
+ [InlineData("MarshallChar", "B")]
+ [InlineData("MarshallNullableChar", "")]
+ [InlineData("MarshallGuid", "c286c18d-ecd8-47e0-bfc6-6ce709c5d498")]
+ [InlineData("MarshallNullableGuid", "")]
+ [InlineData("MarshallString", "BABABA")]
+ [InlineData("MarshallEnum", "Three")]
+ [InlineData("MarshallNullableEnum", "")]
+ [InlineData("MarshallObject", "2, ABC")]
+ [InlineData("MarshallRecord", "3, DEF")]
+ [InlineData("MarshallObjectArray", "3, ghi; 1, abc")]
+ [InlineData("MarshallRecordArray", "4, jkl; 2, def")]
+ [InlineData("MarshallIntArray", "5; 2")]
+ [InlineData("MarshallNullableDoubleArray", "; 3")]
+ [InlineData("MarshallStringArray", "def; abc")]
+ [InlineData("MarshallTask", "8, pqr; 6, mno")]
+ [Trait("Category", "aspnetcore-only")]
+ public void Feature_CsharpClient_Marshalling(string section, string expected)
+ {
+ RunInAllBrowsers(browser => {
+ browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_CsharpClient_Marshalling);
+
+ var p = browser.Single(section, SelectByDataUi);
+ p.Single("input[type=button]").Click();
+ AssertUI.TextEquals(p.Single("span"), expected);
+ });
+ }
+
+ public CsharpClientTests(ITestOutputHelper output) : base(output)
+ {
+ }
+ }
+}
diff --git a/src/Tests/ControlTests/ViewModulesServerSideTests.cs b/src/Tests/ControlTests/ViewModulesServerSideTests.cs
index 1b7616967e..26732e3dc2 100644
--- a/src/Tests/ControlTests/ViewModulesServerSideTests.cs
+++ b/src/Tests/ControlTests/ViewModulesServerSideTests.cs
@@ -41,14 +41,14 @@ public async Task NamedCommandWithoutViewModule_StaticCommand()
{
var r = await Assert.ThrowsExceptionAsync(() => cth.RunPage(typeof(object), @"
"));
- Assert.AreEqual("Validation error in NamedCommand at line 7: The NamedCommand control can be used only in pages or controls that have the @js directive.", r.Message);
+ Assert.AreEqual("Validation error in NamedCommand at line 7: The NamedCommand control can be used only in pages or controls that have the @js or @csharp directive.", r.Message);
}
[TestMethod]
public async Task NamedCommandWithoutViewModule_Command()
{
var r = await Assert.ThrowsExceptionAsync(() => cth.RunPage(typeof(object), @"
"));
- Assert.AreEqual("Validation error in NamedCommand at line 7: The NamedCommand control can be used only in pages or controls that have the @js directive.", r.Message);
+ Assert.AreEqual("Validation error in NamedCommand at line 7: The NamedCommand control can be used only in pages or controls that have the @js or @csharp directive.", r.Message);
}
[TestMethod]
diff --git a/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_InternalProperty.html b/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_InternalProperty.html
index e84fa989d5..bf16e52e70 100644
--- a/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_InternalProperty.html
+++ b/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_InternalProperty.html
@@ -1,7 +1,7 @@
-
+
diff --git a/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_JsInvoke.html b/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_JsInvoke.html
index 960a66701e..4a9d2eeb0e 100644
--- a/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_JsInvoke.html
+++ b/src/Tests/ControlTests/testoutputs/MarkupControlTests.MarkupControl_JsInvoke.html
@@ -1,7 +1,7 @@
-
+
diff --git a/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html b/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html
index 46df5cdf5a..92f9879ed3 100644
--- a/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html
+++ b/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html
@@ -11,10 +11,10 @@
-
+
-
+
@@ -29,8 +29,8 @@
"dotvvm.internal",
"dotvvm",
"dotvvm.debug",
- "viewModule.import.6DLlOTYMqGV5yPAJoz5k_moKDBgEmZ3_HLLQ2zKDo74",
- "viewModule.init.6DLlOTYMqGV5yPAJoz5k_moKDBgEmZ3_HLLQ2zKDo74"
+ "viewModule.import.txdc3tmh_O-C0Z6NbwaMDcdUBct4MPc2ESN2w2mvtZU",
+ "viewModule.init.txdc3tmh_O-C0Z6NbwaMDcdUBct4MPc2ESN2w2mvtZU"
],
"typeMetadata": {}
}">
diff --git a/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModuleInControl.html b/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModuleInControl.html
index c897ea466f..31b07e946b 100644
--- a/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModuleInControl.html
+++ b/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModuleInControl.html
@@ -8,26 +8,26 @@
-
+
-
+
-
+
-
+
-
+
@@ -49,10 +49,10 @@
"knockout",
"dotvvm.internal",
"dotvvm",
- "viewModule.import.lIquTPFe3a42GboPePTmYZ4Xc1S4ok-JXmZud9HUybE",
+ "viewModule.import.-X0xRoPX49kw-adwrbsYQEJD_niSRyAgf2xH3URtlgw",
"dotvvm.debug",
- "viewModule.import.HIj399FcjVwbyaIvDKFctn7Ghr0UMajY-haUgZypcHs",
- "viewModule.init.HIj399FcjVwbyaIvDKFctn7Ghr0UMajY-haUgZypcHs"
+ "viewModule.import.Zi0iKhaMCabp2tHzbqfe2sm6goFucgC1ZwGOP_Pli5k",
+ "viewModule.init.Zi0iKhaMCabp2tHzbqfe2sm6goFucgC1ZwGOP_Pli5k"
],
"typeMetadata": {
"RPyCWRg9lOhkRJyH": {
diff --git a/src/Tests/Runtime/config-tests/ConfigurationSerializationTests.SerializeDefaultConfig.json b/src/Tests/Runtime/config-tests/ConfigurationSerializationTests.SerializeDefaultConfig.json
index 37417c9dd9..2090a52421 100644
--- a/src/Tests/Runtime/config-tests/ConfigurationSerializationTests.SerializeDefaultConfig.json
+++ b/src/Tests/Runtime/config-tests/ConfigurationSerializationTests.SerializeDefaultConfig.json
@@ -68,6 +68,17 @@
"knockout"
],
"RenderPosition": "Anywhere"
+ },
+ "dotvvm.interop.dotnet-wasm": {
+ "Defer": true,
+ "Location": {
+ "$type": "DotVVM.Framework.ResourceManagement.EmbeddedResourceLocation, DotVVM.Framework",
+ "Assembly": "DotVVM.Framework, Version=***, Culture=neutral, PublicKeyToken=23f3607db32275da",
+ "Name": "DotVVM.Framework.obj.javascript.dotvvmStaticResources.dotnetWasmViewModule.js",
+ "DebugName": "DotVVM.Framework.obj.javascript.dotvvmStaticResources.dotnetWasmViewModule.js"
+ },
+ "MimeType": "text/javascript",
+ "RenderPosition": "Anywhere"
}
},
"scripts": {