Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc .Net MVC 4视图引擎WebForm_Asp.net Mvc_Webforms_Razor_Viewengine - Fatal编程技术网

Asp.net mvc .Net MVC 4视图引擎WebForm

Asp.net mvc .Net MVC 4视图引擎WebForm,asp.net-mvc,webforms,razor,viewengine,Asp.net Mvc,Webforms,Razor,Viewengine,在我看来,这是一个相当有趣的问题。 我有一个使用WebForm视图引擎的强类型视图,我不知道更改为razor是否能解决我的问题 问题: 我有一个汽车列表视图,因此类型为IList。 我有一个按钮“创建一辆新车”弹出,弹出的是一个隐藏的表单,你调用一个jQuery UI命令$('formName')。dialog()要弹出它,这个表单具有可能的新车的属性,因此可能是一个带有强类型车的新视图。填写表单后,数据库中应该填充新车,并且应该使用Ajax刷新汽车列表。 主要的问题是,我不能同时使用HTML助

在我看来,这是一个相当有趣的问题。 我有一个使用WebForm视图引擎的强类型视图,我不知道更改为razor是否能解决我的问题

问题: 我有一个汽车列表视图,因此类型为
IList
。 我有一个按钮“创建一辆新车”弹出,弹出的是一个隐藏的表单,你调用一个jQuery UI命令
$('formName')。dialog()
要弹出它,这个表单具有可能的新车的属性,因此可能是一个带有强类型
车的新视图。填写表单后,数据库中应该填充新车,并且应该使用Ajax刷新汽车列表。
主要的问题是,我不能同时使用HTML助手来
IList
Car

简而言之:该视图的强类型是什么?是否可以使用弹出窗口定义两个视图和另一个调用?把它换成剃须刀能解决我的问题吗

致以最良好的祝愿


Tito Morais

不要将列出汽车和创建新车的视图混合在一起


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

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

class ListAndCreate
{
 public IList<Car> AllCars {get;set;}
 public Car NewCar {get;set;}
}
类列表和创建
{
公共IList AllCars{get;set;}
公共汽车新车{get;set;}
}
在我看来,这是正确的,因为一个视图负责列出所有汽车并创建一个新的。现在,我假设您的
新车
有来自控制器或其他东西的值,您需要将模型传递给视图


@Jonas提到的另一种方法也是正确的,而且更加统一。您可以使用类型
Car
创建部分视图
\u CreateCar
,使用Jquery/Ajax进行渲染,将其加载到对话框/弹出窗口中,并将表单发布到控制器中的
create(Car c)
方法。

我不知道您的问题是什么。但在Razor中,没有什么是在WebForms中做不到的。我自己更喜欢Razor,但更改并不能解决您的“问题”。除非您在这里发布代码示例,否则没有人会提供可靠的答案。我有点理解你需要什么,但这可能是错误的,所以张贴代码,请。