小编Mar*_*l W的帖子

input type="hidden" asp-for= 不适用于列表

我正在寻找一种智能方法来将列表的值存储在hidden input表单中,并在发布表单时将值返回到我的视图模型中。

在我的视图模型中,我有一个包含SelectListItem项目的列表。该列表的使用方式与元素asp-items中一样select。现在,当用户关闭脚本并发布有错误的表单时,我想重新显示表单而不必重新创建列表。

属性看起来像:

public IReadOnlyCollection<SelectListItem> UserLevels { get; set; }
Run Code Online (Sandbox Code Playgroud)

在剃刀视图中,这不会正确保存 UserLevels 的值:

<input type="hidden" asp-for="UserLevels"/>
Run Code Online (Sandbox Code Playgroud)

我发现了这个关于类似问题的问题,但我没有找到一个很好的解决方案。有人知道存储列表值的聪明方法吗?

c# asp.net-core

6
推荐指数
1
解决办法
1万
查看次数

AuthorizeRouteView 不适用于注销用户

我们正开始将项目迁移到 blazor,但在将内容限制为仅登录用户时遇到了一些问题。

对于此测试,我们使用了标准 Visual Studio 2019 Blazor 服务器端项目模板,并启用了本地用户和帐户身份验证。

然后,我们将 App.razor 文件更改为以下内容:

<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
    <AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
        <NotAuthorized>
            NOT AUTHORIZED!!!!!
        </NotAuthorized>
        <Authorizing>
            AUTHORIZING!!!!!
        </Authorizing>
        </AuthorizeRouteView>
</Found>
<NotFound>
    <CascadingAuthenticationState>
        <LayoutView Layout="@typeof(MainLayout)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>
    </CascadingAuthenticationState>
</NotFound>
Run Code Online (Sandbox Code Playgroud)

中的代码<NotAuthorized>永远不会被击中,我已经确认浏览器上没有cookie,甚至也在私人浏览器窗口中尝试过。

我在另一个组件中注入了 HTTPContext 来查看当前用户发生了什么。当前用户不为空,它具有身份,但显示未经身份验证,并且没有预期的声明。

我在这里缺少什么吗?

asp.net-core blazor blazor-server-side blazor-client-side

6
推荐指数
2
解决办法
3075
查看次数

Monotouch上的Mono.Data.Sqlite:如何在插入行后获取自动增量字段的值?

好吧,这可能是非常基本的东西,但我花了很长时间才弄明白.我想有更多像我这样的.NET程序员,Monotouch和SQLite的新手都不知道这一点.

我将Ado.NET(System.Data)与Monotouch和SQLite一起使用.在SQLite中,每个表的每一行都有一个名为ROWID的64位有符号整数.您可以使用它,或者如果您愿意,可以使用INTEGER PRIMARY KEY AUTOINCREMENT指定一个字段,SQLite将链接到ROWID.

但是,如何在插入新记录后检索此字段的值?像Sql Server中的@@ identity关键字?

搜索我发现SQLite的iOS库有一个方法sqlite3_last_insert_rowid()来检索它,但在Mono.Data.Sqlite中没有相应的.在较旧的实现(Mono.Data.SqliteClient)中有一个LastInsertRowID()方法,但该方法在Mono.Data.Sqlite中消失了.为什么?

sqlite xamarin.ios

5
推荐指数
1
解决办法
1500
查看次数

MonoTouch错误MT2002:无法解析参考

我正在开发一个使用大量反射的iOS/MonoTouch项目.一切都很好,但是当我编译Debug | iPhone版本时,我得到错误:

错误MT2002:无法解析引用:System.Boolean System.Reflection.PropertyInfo :: op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)

有趣的是,Release | iPhone版本运行良好.

有什么不对?

.net xamarin.ios ios

5
推荐指数
1
解决办法
2801
查看次数

Xamarin.iOS构建错误MSB4096:"ReferenceCopyLocalPaths"未定义元数据"ResolvedFrom"的值

更新Visual Studio 2017(包括Xamarin)后,我在几个Nuget包上收到错误,例如:

...\MSBuild\Xamarin\Xamarin.Apple.Sdk.targets(29,5):错误MSB4096:项目".... nuget\packages\HockeySDK.Xamarin\4.1.3\lib\Xamarin.iOS10\HockeySDK .dll"在项目列表中"ReferenceCopyLocalPaths"没有为元数据"ResolvedFrom"定义值.要使用此元数据,请通过指定%(ReferenceCopyLocalPaths.ResolvedFrom)来限定它,或者确保此列表中的所有项都定义此元数据的值.

只有在为Xamarin.iOS构建时才会出现此错误.适用于Android的构建工作正常.

有人知道如何解决这个问题吗?

xamarin.ios visual-studio-2017

5
推荐指数
1
解决办法
568
查看次数

3
推荐指数
1
解决办法
591
查看次数

Xamarin Archive Manager 失败并显示:指定的路径、文件名或两者都太长

当我尝试从 Visual Studio 创建存档以分发我的 Xamarin Android 应用程序时,存档管理器失败并显示以下消息:

“未能创建应用存档'MyCompanyName.Client.Droid'。指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。 ”

不幸的是,存档管理器没有说明是哪个文件导致了问题。

我已经尝试将项目和 nuget 包移动到根文件夹,但这没有帮助。

xamarin.android

3
推荐指数
1
解决办法
2806
查看次数

GC.WaitForPendingFinalizers 在异步方法中不起作用?

我有一些单元测试来验证使用 Wea​​kReferences 的对象是否正常工作。将这些对象重构为异步工作后,单元测试失败。这似乎是由于使用异步时 GC.WaitForPendingFinalizers 不工作(或工作方式不同?)引起的。

为了检查这一点,我创建了一个带有两个按钮的简单 WPF 应用程序,一个具有常规单击事件,一个具有异步单击事件。

当我按下 NormalGCTest 按钮时,会显示“对象垃圾收集:True”。

但是当我按下 AsyncGCTest 按钮时,会显示“对象垃圾收集:False”。

到底是怎么回事?有没有办法在我的测试中强制进行完整的垃圾收集?

    private void NormalGCTest(object sender, RoutedEventArgs e)
    {
        var temp1 = new object();
        var temp2 = new WeakReference(temp1);
        temp1 = null;
        GC.Collect();
        GC.WaitForPendingFinalizers();
        temp1 = temp2.Target;
        System.Diagnostics.Debug.WriteLine("object garbage collected: {0}", temp1 == null);
    }

    private async void AsyncGCTest(object sender, RoutedEventArgs e)
    {
        var temp1 = new object();
        var temp2 = new WeakReference(temp1);
        temp1 = null;
        GC.Collect();
        GC.WaitForPendingFinalizers();
        temp1 = temp2.Target;
        System.Diagnostics.Debug.WriteLine("object garbage collected: {0}", temp1 == …
Run Code Online (Sandbox Code Playgroud)

c# wpf garbage-collection async-await

2
推荐指数
1
解决办法
1374
查看次数

在应用程序中更改语言 - 如何重新启动?

我想让用户可以更改我的应用程序中的语言.

这里描述了执行此操作的方法,在单触引代码中将首选语言设置为荷兰语,将备用语言设置为英语:

  NSUserDefaults.StandardUserDefaults.SetValueForKey
                (NSArray.FromStrings("nl", "en"), new NSString("AppleLanguages"));
Run Code Online (Sandbox Code Playgroud)

您必须重新启动应用程序才能生效.但是在iPhone 4上,关闭它时应用程序不会重新启动,它只是隐藏了.是否有办法强制应用程序在关闭后重新启动?

iphone xamarin.ios

0
推荐指数
1
解决办法
5179
查看次数