我已经在我的模型如下:
public sealed class OAuthProvider
{
private readonly string name;
private const string SOME_PROVIDER = "SOMEPROVIDER";
public static readonly OAuthProvider SomeProvider = new OAuthProvider(SOME_PROVIDER);
private OAuthProvider(String name) { this.name = name; }
public override String ToString(){ return name; }
public static implicit operator string(OAuthProvider oAuthProvider)
{
return oAuthProvider.name;
}
public static implicit operator OAuthProvider(string oAuthProvider)
{
switch (oAuthProvider)
{
case SOME_PROVIDER : return SomeProvider ;
default: return null;
}
}
}
这在我OAuth
控制器:
public ActionResult Profile(OAuthProvider network)
{...}
这在我看来:
@model SomeModel
Html.RenderAction("Profile", "OAuth", new { network = Model.Network });
凡Model.Network
是一个string
如果这一观点被渲染,我可以看到(通过断点),其Model.Network
即将作为一个string
不是空。 我的Profile(OAuthProvider)
被调用,但network
是如来null
,尽管隐式类型转换的到位。
我要对这个错误的方式? 我是被迫做了一个明确的投?