2011-10-18 59 views
0

在我看来,这是一个相当有趣的问题。 我有一个使用WebForm视图引擎的强类型视图,我不知道是否改用剃刀可以解决我的问题。.Net MVC 4查看引擎WebForm

问题: 我有一个看法与汽车列表,所以类型IList <Car>。 我有一个按钮“创建一个新车”弹出窗口,弹出窗口是一个隐藏的窗体,你调用一个jQuery UI命令$('formName').dialog()弹出它,这种形式有可能的新车的属性,所以可能一个强烈类型的新视图Car。填写表格后,数据库应该填入新车,并且应该使用Ajax刷新汽车列表。 主要问题是我不能同时使用HTML助手IList <Car>Car

简而言之:该视图的强类型是什么?是否可以使用弹出来定义两个视图和另一个视图?将它改为剃刀可以解决我的问题吗?

最好的问候,

铁托莫赖斯

+1

我不知道你的问题是什么。但在Razor中,WebForms中无法做到这一点。我更喜欢剃刀自己,但改变并不能解决你的'问题'。 –

+0

除非您在此处发布您的代码示例,否则没有人会提供可靠的答案。我有点理解你需要什么,但这可能是错误的,所以发布代码,请。 – tugberk

回答

1

不要混用上市的汽车,共创新车的意见。

例如,您可以使用jQuery对话框或类似组件,制作一个弹出窗口,动态加载“_CreateCar”局部视图。然后当部分视图完成时,使用另一个Ajax调用重新加载列表视图。

1

也许没有那么多的优雅的解决方案是创建一个复杂的视图模型,如:

class ListAndCreate 
{ 
public IList<Car> AllCars {get;set;} 
public Car NewCar {get;set;} 
} 

IMO这是正确因为这一个观点是负责列出所有小轿车和创建一个新的。现在,我假设您的NewCar具有来自您的控制器的值或其他值,您需要将模型传递给您的视图。

@Jonas提到的另一种方法也是正确的,更加统一。您可以创建一个局部视图_CreateCarCar类型,使用Jquery/Ajax将其加载到对话框/弹出窗口中,并将表单POST形式发送到控制器中的Create(Car c)方法。