此处将为大家介绍关于asp.net-mvc–如何在我的视图中将HTML从MVC控制器返回到div的详细内容,并且为您解答有关controller返回html的相关问题,此外,我们还将为您介绍关于asp
此处将为大家介绍关于asp.net-mvc – 如何在我的视图中将HTML从MVC控制器返回到div的详细内容,并且为您解答有关controller返回html的相关问题,此外,我们还将为您介绍关于asp.net – 从MVC控制器返回不同的视图、asp.net-mvc – $.ajax发布到MVC控制器返回内部服务器错误:参数字典包含空条目、asp.net-mvc – ASP MVC:为什么我的视图中看不到我的内部类?、asp.net-mvc – ASP.Net MVC 4.在单独的程序集中路由控制器返回错误404的有用信息。
本文目录一览:- asp.net-mvc – 如何在我的视图中将HTML从MVC控制器返回到div(controller返回html)
- asp.net – 从MVC控制器返回不同的视图
- asp.net-mvc – $.ajax发布到MVC控制器返回内部服务器错误:参数字典包含空条目
- asp.net-mvc – ASP MVC:为什么我的视图中看不到我的内部类?
- asp.net-mvc – ASP.Net MVC 4.在单独的程序集中路由控制器返回错误404
asp.net-mvc – 如何在我的视图中将HTML从MVC控制器返回到div(controller返回html)
这是我的控制器代码
public ActionResult ValidateTrams() { string html = ""; if (Request.Files.Count == 0 || Request.Files[0].ContentLength == 0) { } else { html = ProcesstextFile(Request.Files[0].InputStream); } return View(html); }
我试图像这样在jquery中获取这个返回的结果
$('#tramsView').live('click',function () { $.ajax({ url: '/Booking/ValidateTrams',type: 'POST',dataType: 'jsonp',success: function (data) { alert(data); $('#TramsViewFrame').html(data); },error: function (jqxhr,textStatus,errorThrown) { $(window).hideWaitScreen(); if (confirm(errorThrown)) { window.location.reload(); } } });
});
最后,下面是表单的CSHTML.在这里,我正在从提示按钮类型的表单中读取文件
<form action="#" method="post" enctype="multipart/form-data"name="form" id="frmvalidate"> <table> <tr> <td> <input type='file' name='trams' id='ValidatetramsFile' /> </td> </tr> <tr> <td> <br /> <input name="cbdisplayUmatched" id="cbdisplayUmatched" type="checkBox" value="" checked="true" /> <labelhttps://www.jb51.cc/tag/decoration/" target="_blank">decoration: none; outline: none; font-size: 1.1em; padding: 3px 0 0px 0;"> display rows that were <strong>NOT</strong> parsed</label> </td> </tr> <tr> <td> <br /> <div> <button type="submit" value="VIEW"id="tramsView">VIEW</button> </div> </td> </tr> </table> </form>
感谢您的时间,非常感谢您的帮助.亲切的问候!!!
解决方法
尝试阻止使用以下内容进行默认表单提交:
$('#tramsView').live('click',function (evt) { evt.preventDefault(); // ... rest of your code });
顺便提一下,在这种情况下,如果你正在做的只是更新#TramsViewFrame上的html,你可以使用稍微简单的$.load()方法:
$('#tramsView').live('click',function (evt) { evt.preventDefault(); $('#TramsViewFrame').load('/Booking/ValidateTrams'); });
asp.net – 从MVC控制器返回不同的视图
@using (Html.BeginForm("Track","Tracking",FormMethod.Post)) { <div> <textarea cols="20" id="txtNo" name="txtOrderNo" rows="2" ></textarea> </div> <div> <input type="radio" name="optOrderNo" checked="checked" value="tracking" />Order No <input type="radio" name="optRefNo" value="tracking" />Ref No </div> <div> <input type="submit" value="Track" /> </div> }
所以它将转到TrackingController和Track Method并返回视图.它适用于单个搜索,因为View与控制器的方法相关联.它工作正常但我怎么能有条件地返回基于单选按钮选择的其他视图.
我想出的就是这个
[HttpPost] public ActionResult Track(FormCollection form) { string refNo = null; if (form["optRefNo"] == null) { string OrderNo = form["txtOrderNo"]; var manager = new TrackingManager(); var a = manager.ConsignmentTracking(OrderNo); var model = new TrackingModel(); if (OrderNo != null) model.SetModelForConsNo(a,consNo); return View(model); } refNo = form["txtConsNo"]; return TrackByRef(refNo); } public ActionResult TrackByRef(string refNo) { //what ever i want to do with reference no return View(); }
请指导.
谢谢
解决方法
public ActionResult TrackByRef(string refNo) { //what ever i want to do with reference no return View("Track"); // or,if you want to supply a model to Track: // return View("Track",myModel); }
asp.net-mvc – $.ajax发布到MVC控制器返回内部服务器错误:参数字典包含空条目
参数字典包含非可空类型’system.int32’的参数’appId’的空条目,用于’HLIT_TicketingMVC.Controllers.TicketController’中的方法’System.Web.Mvc.ContentResult CheckForInstaller(Int32)’.可选参数必须是引用类型,可空类型,或者声明为可选参数.
function SubmitAjax(url,message,successFunc,errorFunc) {
$.ajax({
type:'POST',url:url,data:message,contentType: 'application/json; charset=utf-8',dataType: 'json',success:successFunc,error:errorFunc
});
};
数据对象构建如下:
var message={"appId":application.val()};
我也尝试了一个jsonified字符串:
var message="{'appId':"+application.val()+"}";
和
var message="{'appId':'"+application.val()+"'}";
我在尝试发布之前验证了消息是否带有正确的int值.鼠标在调试器上最近显示:{appId =“6”}
控制器上的方法签名是:
public ContentResult CheckForInstaller(int appId)
当我从方法签名中删除参数时,它确实触及了内部的断点,所以它是需要某种属性的签名,或者我认为消息没有正确构建.
contentType: 'application/json; charset=utf-8',
MVC不会将JSON解析为int.您需要application / x-www-form-urlencoded的默认值.
asp.net-mvc – ASP MVC:为什么我的视图中看不到我的内部类?
<ul> <li><% Html.ActionLink(StringHelper.TryGetLocalString("Something"),"Blah","Blah"); %></li> </ul>
在我从局部视图中看到它之前,我必须将StringHelper类设置为public.
为什么??
(旁注:解析为本地字符串将在我的控制器中完成而不是在视图(布局)中,但它是一个很好的快速示例).
卢克,谢谢你的帮助
解决方法
当你有控制器,视图等作为默认MVC网站设置(以及它在调试时如何工作)将常规代码编译为DLL,然后单独编译页面/视图时,就会出现这种情况.当您在发布网站时设置“Updatability”时,也会发生这种情况.
asp.net-mvc – ASP.Net MVC 4.在单独的程序集中路由控制器返回错误404
然而,当我从该控制器请求信息时,我得到错误404.我一直在与它斗争最后5-6小时,我怀疑我可能会遗漏一些小而明显的东西,这就是为什么我希望得到一个建议.
我在stakoverflow上找到了关于路由和错误404的类似问题,但是当我实现另一个原型项目时,我没有得到这样的错误并使用类似的代码结构,我相信他们描述的问题与我的不同.
总的来说 – 我想要实现的目标的总体目标是在独立项目中实现一个区域,如here所述.
我做了所有类似的事情,在链接中解释了一个小型原型(并且它工作正常),现在尝试申请真正的项目.
这是我包含程序集和管理路由的方式:
>有一个主要项目,其中一个区域代表一个隐藏的子项目“CommunicationBus”
>“CommunicationBus”项目包含一个类“CommunicationBusAreaRegistration”.注册路由工作正常,我可以使用调试器到这里,当我使用routedebugger时我也可以看到这条路线(见下面的截图).我也玩过这个类的命名空间,最后尝试添加.Areas.CommunicationBus,但它没有任何区别我能注意到.
namespace MBVD.MainProject.UI { public class CommunicationBusAreaRegistration : AreaRegistration { public override string AreaName { get { return "CommunicationBus"; } } public override void Registerarea(AreaRegistrationContext context) { context.MapRoute( "CommunicationBus_default","CommunicationBus/{controller}/{action}/{id}",new { action = "Index",id = UrlParameter.Optional },new string[] { "CommunicationBus.Controllers" } ); } } }
>在主项目的Global.asax中,我按以下方式注册路由:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",new { controller = "Home",action = "Index",new[] { "MBVD.MainProject.UI.Controllers" } ); }
如果我在这里引用“CommunicationBus.Controllers”,我就不能再打开主应用程序的页面了.但是,我相信我只需要在这里注册主应用程序的控制器的路径
> CommunicationBus项目的输出路径设置为主项目的bin文件夹.每次我构建CommunicationBus时,我都会在主项目中获得一个新的.dll.
>我在CommunicationBus项目中添加了一个简单的控制器:
namespace CommunicationBus.Controllers { public class TestController : Controller { [HttpGet] public string Index() { return "It works!"; } } }
>我添加了一个主项目的链接
@Html.ActionLink("test","Index","Test",new {Area="CommunicationBus"},null)
这是:
本地主机:63254 / CommunicationBus /测试
>我使用routedebugger,它没有显示任何可疑的东西:
我将ASP.NET MVC 4用于这两个项目.
我会很感激我能做些什么来弄清楚为什么我会收到这个错误.
解决方法
尝试在默认路由之前注册您的区域路由.或者,您可以一起跳过该业务并使用属性路由(http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx).如果使用属性路由,则需要确保在调用routes之前从所有命名空间加载控制器.MapMvcAttributeRoutes(); (如果您只是作为参考包含,这没有问题,如果您动态加载引用,它只会成为一个问题).
关于asp.net-mvc – 如何在我的视图中将HTML从MVC控制器返回到div和controller返回html的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于asp.net – 从MVC控制器返回不同的视图、asp.net-mvc – $.ajax发布到MVC控制器返回内部服务器错误:参数字典包含空条目、asp.net-mvc – ASP MVC:为什么我的视图中看不到我的内部类?、asp.net-mvc – ASP.Net MVC 4.在单独的程序集中路由控制器返回错误404等相关知识的信息别忘了在本站进行查找喔。
本文标签: