Xamarin从razor cshtml输入调用c#模型方法

时间:2016-10-25 12:55:43

标签: c# html razor xamarin

我正在Xamarin中构建一个应用程序,该应用程序将显示一个webview,允许用户选择使用OAuth进行身份验证的平台。在webview中,会显示OAuth提供的图像,当单击该图像时,应调用模型上的方法,该方法将处理该平台的OAuth。我现在似乎无法从图像的onclick事件中调用模型上的函数。

CSHTML:

@model OAuthLogin
<html>
    <body>
         <input id="button" type="image" src="@Model.ImageFile" onclick="login()"/>
    </body>
    <script>
        function login() {
            alert("Model.OpenAuthenticator() should be called from here...");
        }
    </script>
</html>

模型:

public class OAuthLogin {
    public string ImageFile => ImageString();
    private SupportedPlatform Platform { get; }
    private const string GoogleImage = "Images/google.svg";
    private const string MicrosoftImage = "Images/microsoft.svg";

    public OAuthLogin(SupportedPlatform platform) {
        Platform = platform;
    }

    public void OpenAuthenticator() =>
        Authenticator.Authenticate(Platform);

    private string ImageString() {
        switch (Platform) {
            case SupportedPlatform.Google: {
                return GoogleImage;
            }
            case SupportedPlatform.Microsoft: {
                return MicrosoftImage;
            }
            default: {
                throw new NotSupportedException($"No authentication implemented for platform {Platform}.");
            }
        }
    }
}

0 个答案:

没有答案