C# MVC3如何从视图访问此代码?
在剃须刀区C# MVC3如何从视图访问此代码?,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,在剃须刀区 @{ Like This } 我需要能够调用c#函数 静态T转换(对象o) { 返回(T)o; } 以便动态强制转换对象。如何访问此代码 我希望能够做到这一点 someObject = Cast<someType>(someObject); someObject=Cast(someObject); 编辑 我正在尝试实现一个通用视图模型 模型如下: public class GenericVM<TEntity> where TEntity : clas
@{
Like This
}
我需要能够调用c#函数
静态T转换(对象o)
{
返回(T)o;
}
以便动态强制转换对象。如何访问此代码
我希望能够做到这一点
someObject = Cast<someType>(someObject);
someObject=Cast(someObject);
编辑
我正在尝试实现一个通用视图模型
模型如下:
public class GenericVM<TEntity> where TEntity : class
{
public List<TEntity> Entities { get; set; }
public object Entity { get; set; }
public Type Type { get; set; }
}
公共类GenericVM,其中tenty:class
{
公共列表实体{get;set;}
公共对象实体{get;set;}
公共类型类型{get;set;}
}
我正在控制器中填充GenericVM对象,然后将其传递给带有@model dynamic
的视图
进入视图后,我试图使用对象中的类型动态地将模型转换回正确的类型。可能只是简单地转换它,或者我遗漏了什么
@{
var someObject2 = (someType)someObject;
}
或
你可以简单地投下它,还是我错过了什么
@{
var someObject2 = (someType)someObject;
}
或
你能把它放到Html扩展中吗
public static T Cast<T>(this HtmlHelper helper, object o)
{
return (T)o;
}
publicstatict-Cast(这个HtmlHelper助手,对象o)
{
返回(T)o;
}
那么就:
Html.Cast<string>(someString)
Html.Cast(someString)
在你看来。我在这里使用一个字符串作为用法示例,只需更改您自己的模型类型。您能将其放入Html扩展中吗
public static T Cast<T>(this HtmlHelper helper, object o)
{
return (T)o;
}
publicstatict-Cast(这个HtmlHelper助手,对象o)
{
返回(T)o;
}
那么就:
Html.Cast<string>(someString)
Html.Cast(someString)
在你看来。我在这里使用一个字符串作为用法示例,只需更改您自己的模型类型。您的视图模型应该已经以所需的形式向视图提供了数据。真的不需要这样做。我完全同意tvanfosson。@tvanfosson-视图模型是
@model dynamic
,所以需要动态重铸。为什么需要一个函数来进行铸造?你不能直接施放吗?如果它是动态的,就把它当作那种类型来使用。没有必要投下它。如果有一个动态的视图模型,我会感到不舒服。毕竟,为什么不使用ViewBag呢?但是只要您传递一个具有预期属性/方法的类型,它就应该可以工作。您的视图模型应该已经以所需的形式向视图提供了数据。真的不需要这样做。我完全同意tvanfosson。@tvanfosson-视图模型是@model dynamic
,所以需要动态重铸。为什么需要一个函数来进行铸造?你不能直接施放吗?如果它是动态的,就把它当作那种类型来使用。没有必要投下它。如果有一个动态的视图模型,我会感到不舒服,为什么不干脆使用ViewBag呢?但只要您传递一个具有预期属性/方法的类型,它就应该可以工作。他的cast方法似乎接受了您没有提供的参数。他的cast方法似乎接受了您没有提供的参数。