.net MVC3 写代码 cshtml 语法不变色显示,全是黑色的,求指教,把VS2010,mvc3重装了也不行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net MVC3 写代码 cshtml 语法不变色显示,全是黑色的,求指教,把VS2010,mvc3重装了也不行相关的知识,希望对你有一定的参考价值。

先看2个东东
1.Microsoft ASP.NET WebPages - Visual Studio 2010 Tools这个程序有没有安装,没有的话安之
2.确认一下 VS-选项-文本编辑器-你有没有自己加扩展名规则,如果加了,删除之
参考技术A 有时候可能是编译器的问题,你切换下页面试试.追问

换别的页面也是如此,cshtml用什么编码器读的?

参考技术B 给出代码样例呗追问

不是代码的问题 应该是环境 或者 哪里设置一下 语法

追答

不太明白你说的什么意思!

追问

CSHTML 代码不是应该有各种颜色显示语法么,别人的是这样的,我的代码全部是灰色的

追答

是的 你的意思是说 你打一个“@”不是黄色的?

追问

YES

追答

这个没遇见过,不清楚;sorry

asp.net Core MVC + form validation + ajax form 笔记

asp.net Core MVC 有特别处理form,controller可以自己处理model的验证,最大的优势是写form时可以少写代码

先了解tag helper ,这东西就是element上的attribute,在angular来说就是指令,通过指令可以很好的写代码

 

cshtml

@model Project.Web.Home.Product

<form class="myForm" asp-controller="Home" asp-action="Form" method="post">
    <!-- Input and Submit elements -->
    <label asp-for="name"></label>
    <input asp-for="name" class="form-control" />
    <button type="submit">Submit</button>
    <span asp-validation-for="name"></span>????
</form>

Controller

public class Product
    {
        [Required(ErrorMessage = "Required")]//可以验证
        [Display(Name = "Product Name")]
        public string name { get; set; }
    }

编辑后的cshtml

<form class="myForm" method="post" action="/form" novalidate="novalidate">
    <!-- Input and Submit elements -->
    <label for="name">Product Name</label>
    <input class="form-control" type="text" data-val="true" data-val-required="Required" id="name" name="name" value="keat">//先忽略keat
    <button type="submit">Submit</button>
    <span class="field-validation-valid" data-valmsg-for="name" data-valmsg-replace="true"></span>????
</form>

  

通过以上的代码,结果可以看出tag helper大致上处理了一些代码,还需要最后的validation和 model binding

Controller

public class HomeController : Controller
    {
        [Route("")] //忽略
        [Route("{cnOrAmp:regex(^cn$|^amp$)}")]//忽略
        public IActionResult Index(string cnOrAmp = "en")
        {
            var vm = new HomeVm();
            vm.product = new Product();
            vm.product2 = new Product2();//忽略
            vm.product.name = "keat";
            vm.product2.name2 = "mark";//忽略

            if (cnOrAmp == "amp") {//忽略
                return View("~/Web/Home/Amp/Index.cshtml",vm);//忽略
            }//忽略
            return View("~/Web/Home/Index.cshtml", vm);
        }

这样就实现了model binding

最后就是主角了,validation。

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.0.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.16.0/jquery.validate.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validation.unobtrusive/3.2.6/jquery.validate.unobtrusive.min.js"></script>

  

就这样就有一个完整的form了,在asp.net Core MVC有个麻烦的问题,就是form不好管理,如果一个项目一个页面就只有一个form,那么没事发生,但是如果在多个页面重复那该怎么办,答案是ajaxing(MVC不支持)

介绍github 4000多个星星的plugin

https://github.com/jquery-form/form

<script>
        // wait for the DOM to be loaded
        $(document).ready(function () {
            // bind ‘myForm‘ and provide a simple callback function
            $(‘.myForm‘).ajaxForm({
                success: function (response, textStatus, xhr, form) {
                    console.log("in ajaxForm success");

                    if (!response.length || response != ‘good‘) {
                        console.log("bad or empty response");
                        return xhr.abort();
                    }
                    console.log("All good. Do stuff");
                },
                error: function (xhr, textStatus, errorThrown) {
                    console.log("in ajaxForm error");
                },
                complete: function (xhr, textStatus) {
                    console.log("in ajaxForm complete");
                },
                beforeSend: function () {
                    console.log("before send");
                }
            });
        });
    </script>

对提交过程中处理不同的状况

以上

 

  

以上是关于.net MVC3 写代码 cshtml 语法不变色显示,全是黑色的,求指教,把VS2010,mvc3重装了也不行的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc3 动态菜单怎么实现

MVC3 如何将多个查询结果赋值到cshtml页面中?

如何在 Index.cshtml MVC3 上显示两个 Partials 视图数据?

ASP.NET MVC 3 无法识别 .cshtml 视图文件

ASP.NET MVC3 版本发布 [关闭]

SpringBoot入门之Thymeleaf的使用一