我是ASP.NET / MVC/Razor的新手,并且一直在讨论如何(逻辑上)将PHP概念转换为ASP.NET。这可能是不可能的,但我不确定,是的,我知道它当然不是很好的代码。
基本上我想做的是处理多步/舞台形式。在我的例子中,它是在系统上配置一些权限。为此,我必须执行以下步骤:
使用PHP(简化),我可以这样做:
<?php
include("collectinformation.php");
$data = null;
if($_GET['step'] == 2 && isset($_POST['user'])){
// Collect list of elements for a user selected in step 1
$data = collectinformation($_POST['user']);
}
?>
<form action="form.php?step=2" method="post">
<input type="text" name="user">
<input type="submit">
</form>
<form action="changepermission.php" method="post">
<?php
foreach($data as element){
echo '<input type="text" name="'.$element['name'].'" value="'.$element['value'].'">';
}
?>
<input type="submit">
</form>
我试图解决的真正问题是使用通用控制器提供各种表单,而表单可能还需要自定义代码。如果上面作为一个例子,我没有任何问题来实现$_GET['step'] == 2
部分从没有列表的视图转移到列表的转移,但我不知道如何/如果我想避免编译整个项目,我将实现collectinformation
的代码。通常,这将是该特定形式/过程的模型的一部分。从我目前的View来看,这意味着我必须扩展项目的模型并在之后重新编译它。是否可以选择在其自己的模块中使用该特定代码并动态加载它,或者是否可以直接在.cshtml
文件中使用该代码进行第二步?它将具有JIT编译的好处,这将使其更容易更改但速度更慢。
我确实感觉这是错误的方法(特别是对于MVC),但它会让我更容易完成某些任务。我们有很多流程在涉及它们涉及的步骤类型和它们所需的接口时都有非常独特的要求,能够在不重新编译整个项目并再次部署它的情况下处理它们会很好。 / p>
答案 0 :(得分:0)
答案似乎是不可能轻易转换概念。如评论所强调。