model-view-controller - 如何为整个应用程序仅使用一个 MVC 控制器?
问题描述
Is it possible Single Controller for Entire MVC Application to Route Views Or can we Rename Controller Name at Run-time to Route Views?..
我尝试了以下代码以使路线视图正常工作。控制器:-
public class HomeController : Controller
{
public ActionResult Commmon_Method(string VN, string Id)
{
return View(@"~/" + VN + ".cshtml");
}
}
查看页面:
$('#btn_Test').click(function () {
window.location.href = '@Url.Action("Commmon_Method", "Home")?Id=' + 1 + '&VN=' + 'Views/Test/Index2';
});
输出网址:-
http://localhost:52296/Home/Commmon_Method?Id=1&VN=Views/Test2/Index
-----------------------------------------*-------- -
即使我尝试了自己喜欢基于 MVC 的动态路由但无法成功:
http://localhost:52296/Home/Test2/Index
所以控制器名称应该是单一的以提供所有请求,并且我也尝试了运行时控制器并且基于自定义的控制器不成功
另一件事我在 MVC 中成功了单个动态 JSON 数据方法,因此无需编写代码包来使用 Jquery Ajax 方法获取 JSON 数据。
MVC 中唯一的事情,基于单控制器的路由成功意味着 MVC 将是非常容易开发的应用程序,所以您能否分享您的知识以简化复杂的开发方式
解决方案
<script>
$('#btn_Test').click(function () {
window.location.href = '@Url.Action("common_dll", "Home")?ctrl=Testing&View=Index';
//window.location.href = '@Url.Action("Commmon_Method", "Home")?Id=' + 1 + '&VN=' + 'Areas/Testing/Views/Index';
});
</script>
<script>
//$(function () {
// var paramstr = '';
// paramstr = "@@Month$" + 1;
// paramstr += "~@@Year$" + 2018;
// paramstr += "~@@StateID$" + 0;
// paramstr += "~@@HubID$" + 0;
// paramstr += "~@@BranchID$" + 0;
// paramstr += "~@@EmpID$" + 0;
// paramstr += "~@@EmpTypeID$" + 0;
// paramstr += "~@@UserID$" + 1;
// paramstr += "~@@UserTypeID$" + 1;
// var data = getRowData_TableBased('DBSP_MM_Rpt_AttendanceMonthWsie', paramstr, '@Url.Action("GetRowData_Tables", "Home")');
// Grid(data);
//});
function Grid(data) {
if (!isEmpty(data)) {
//$("#jqxgrid").jqxGrid($.extend(true, {}, Common_grid(), {
// source: { datatype: "json", datafields: [], localdata: data },
// columns: Get_Colmns(data)
//}));
}
}
function Get_Colmns(data) {
var datacols = [];
if (!isEmpty(data)) {
$.each(data.Table1, function (name, value) {
if (value.ColumnWidth == 0)
datacols.push({ text: value.ColumnHeader, datafield: value.DataField, hidden: true });
else
datacols.push({ text: value.ColumnHeader, datafield: value.DataField, cellsalign: 'left', align: 'left', width: value.ColumnWidth });
});
}
return datacols;
}
</script>
推荐阅读
- windows - AutoHotKey 的“%UserInput%”功能是否存在严重错误?它没有逃脱,或者似乎允许我逃脱,双引号
- java - java.lang.RuntimeException:我该如何解决这个崩溃?是什么原因造成的?
- django - Django - 只允许一个文件填写表格
- react-native - Navigate.push 动作多次渲染页面
- javascript - 如何更新我的 parse() 函数,使其可以与局部函数和全局函数一起使用?
- c# - 清除 ObservableCollection 并重新添加 ViewModel 会引发异常
- sql - 如何修复此“ORA-00907:缺少右括号”错误?
- html - 嘿,所以我正在为网站制作文本提交表单,但我不知道如何收集用户输入的文本
- python-3.x - Gtk 进度条颜色
- html - 按列编辑表格