小编Jus*_*tin的帖子

如何在ASP.NET MVC 3 razor ViewStart文件中指定不同的布局?

我希望在我的应用程序中有2个单独的布局.假设一个是网站的公共部分,另一个是会员方面.

为简单起见,我们可以说每个站点的所有逻辑都整齐地包含在2个不同的控制器中.

  • PublicController
  • StaffController

并且它们每个都具有相应的布局,用于每个视图下的所有视图.

  • _PublicLayout.cshtml
  • _StaffLayout.cshtml

如何使用_ViewStart.cshtml文件指定"Public"下的所有View/Action使用PublicLayout,"Staff"下的所有内容都使用StaffLayout?

谢谢!

asp.net-mvc layout razor asp.net-mvc-3

308
推荐指数
3
解决办法
16万
查看次数

如何在SQL中的单行上声明和分配变量

我想要类似的东西

DECLARE myVariable nvarchar[MAX] = "hello world".
Run Code Online (Sandbox Code Playgroud)

如果您告诉我如何在字符串中编码引号,则可以获得奖励积分.

例如:

我想要读取字符串

John said to Emily "Hey there Emily"
Run Code Online (Sandbox Code Playgroud)

我的尝试是

DECLARE myVariable nvarchar[MAX] = "John said to Emily \"Hey there Emily\""
Run Code Online (Sandbox Code Playgroud)

sql variables sql-server-2008

122
推荐指数
3
解决办法
12万
查看次数

我可以在存储过程中使用可选的OUTPUT参数吗?

我有一个存储过程有一堆输入和输出参数,因为它是将值插入多个表.在某些情况下,存储过程仅插入到单个表中(取决于输入参数).这是一个模拟的场景来说明.

表/数据对象:

Id
Name
Address
Run Code Online (Sandbox Code Playgroud)

名称

Id
FirstName
LastName
Run Code Online (Sandbox Code Playgroud)

地址

Id
Country
City
Run Code Online (Sandbox Code Playgroud)

假设我有一个插入人的存储过程.如果地址不存在,我将不会将其添加到Address数据库中的表.

因此,当我生成调用存储过程的代码时,我不想打扰添加Address参数.对于INPUT参数,这是可以的,因为SQL Server允许我提供默认值.但是对于OUTPUT参数我在存储过程中做什么使它成为可选的,所以我没有收到错误...

过程或函数'Person_InsertPerson'需要参数'@AddressId',这是未提供的.

sql-server stored-procedures data-access

69
推荐指数
3
解决办法
7万
查看次数

我可以从泛型类型转换为C#中的枚举吗?

我正在编写一个实用程序函数,它从数据库中获取一个整数,并将一个类型化的枚举返回给应用程序.

这是我试图做的(注意我传入数据读取器和列名而不是int我的真实函数):

public static T GetEnum<T>(int enumAsInt)
{
    Type enumType = typeof(T);

    Enum value = (Enum)Enum.ToObject(enumType, enumAsInt);
    if (Enum.IsDefined(enumType, value) == false)
    {
        throw new NotSupportedException("Unable to convert value from database to the type: " + enumType.ToString());
    }

    return (T)value;
}
Run Code Online (Sandbox Code Playgroud)

但它不会让我(T)value说:

无法将类型'System.Enum'转换为'T'.

我也读过很多关于使用的评论Enum.IsDefined.表现明智,听起来很糟糕.我怎样才能保证有效价值?

c# generics enums casting

43
推荐指数
2
解决办法
2万
查看次数

如何在单个方法上指定多个泛型类型约束?

我可以使用"Where"子句将泛型限制为指定类型,例如:

public void foo<TTypeA>() where TTypeA : class, A
Run Code Online (Sandbox Code Playgroud)

如果我的函数有两种泛型类型,我该怎么做?

public void foo<TTypeA, TTypeB>() where TTypeA : class, A && TTypeB : class, B
Run Code Online (Sandbox Code Playgroud)

以上不起作用.添加规则"TTypeB:class,B"的正确语法是什么

c# generics

36
推荐指数
3
解决办法
2万
查看次数

如何创建SVN提交消息模板和挂钩进行验证

我正在使用Visual SVN Server和Tortoise SVN(客户端)进行源代码管理.我希望所有开发人员都能以一致的格式标注签入说明.

例如,我希望他们的提交消息默认为......

概要:

开发者名称:( 预先填充)

评论人:

[错误ID]:

[更改错误状态]:

已知的问题:

受影响的文件:( 预先填充)

在将来,我希望[Bug Id]和[Bug State]提供信息,以触发Bug跟踪系统的自动更新.还应使用svn用户和用户提交的文件预填充开发人员名称和受影响的文件.

请发送您可能拥有的任何链接或样本.

svn tortoisesvn commit-message visualsvn-server pre-commit-hook

25
推荐指数
1
解决办法
3万
查看次数

如何使用JQuery监听RadioGroup所选值的更改?

我需要为一组单选按钮注册一个处理程序.我正在使用JQuery,并希望它的.change方法能够实现这一点.但是,我没有经历过期望的行为.

这是我写的一个示例片段.遗憾的是,"radioValueChanged"仅在初始加载时调用.选择true/false不会触发处理程序.

<html>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>

<form id="myForm">
    <div id="Question1Wrapper">
        <div>
            <input type="radio" name="controlQuestion" id="valueFalse" value="0" />
            <label for="valueFalse">
                False</label>
        </div>
        <div>
            <input type="radio" name="controlQuestion" id="valueTrue" value="1" />
            <label for="valueTrue">
                True</label>
        </div>
    </div>
    <div id="Question2Wrapper">
        <div>
            <label for="optionalTextBox">
                This is only visible when the above is true</label>
            <input type="text" name="optionalTextBox" id="optionalTextBox" value="" />
        </div>
    </div>

    <script type="text/javascript">
        jQuery(document).ready(function ()
        {
            $("#controlQuestion").change(radioValueChanged('controlQuestion'));
        })

        function radioValueChanged(radioName)
        {
            radioValue = $('input[name=' + radioName + ']:checked', '#myForm').val();

            alert(radioValue);

            if(radioValue == 'undefined' || …
Run Code Online (Sandbox Code Playgroud)

jquery onchange radio-group radio-button

21
推荐指数
1
解决办法
3万
查看次数

我可以使用ASP.Net MVC Razor视图生成格式良好的HTML Body作为从服务器发送的电子邮件的输入吗?

我想利用Razor View的模型绑定/渲染功能为我从ASP.NET MVC应用程序发送的电子邮件生成HTML正文内容.

有没有办法将视图呈现给字符串而不是将其作为GET请求的ActionResult返回?

为了说明我正在寻找能够做到以下事情的事情......

    public ActionResult SendEmail(int id)
    {
        EmailDetailsViewModel emailDetails = EmailDetailsViewModel().CreateEmailDetails(id);

        // THIS IS WHERE I NEED HELP...
        // I want to pass my ViewModel (emailDetails) to my View (EmailBodyRazorView) but instead of Rending that to the Response stream I want to capture the output and pass it to an email client.
        string htmlEmailBody = View("EmailBodyRazorView", emailDetails).ToString();

        // Once I have the htmlEmail body I'm good to go.  I've got a utilityt that will send the email …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc view razor

21
推荐指数
2
解决办法
1万
查看次数

为特定客户端创建自定义区域性和关联资源文件的建议方法是什么?

我的客户端想要为我的字符串资源的子集指定他们自己的本地化内容版本.

为简单起见,这里是基本的例子:
假设我有2个本地化字符串(显示英文内容)
PageTitle ="Hello World"
PageDescription ="这是一个更加冗长的Hello World版本!"

我想本地化这些,所以我有资源文件.

  • Strings.resx (包含我的英文字符串)
  • Strings.fr-ca.resx (包含我的法语 - 加拿大字符串)
  • Strings.fr-ca-clientX.resx (包含我的法语 - 加拿大客户的字符串,非常挑剔;) - 只是在开玩笑)

理想情况下,"Strings.fr-ca-clientX"只能指定他们想要"覆盖"的字符串.换句话说,他们可能只想更改PageTitle并继续使用"fr-ca"资源文件中的PageDescription.

那么我该如何在.NET中解决这个问题呢?理想情况下,我只是创建resx文件并在我的"Web.config"中指定文化,它应该工作...

<globalization uiCulture="fr-ca-clientX" culture="fr-ca-clientX" />
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用."标签包含'culture'属性的无效值"是我的第一个obsticle.

谢谢,
贾斯汀

asp.net resources localization resx cultureinfo

17
推荐指数
1
解决办法
1982
查看次数

是否可以在ASP.NET MVC中本地化URL /路由?

我正在与希望我们的Web应用程序中的URL使用法语的客户端合作.我是英语开发人员,我们也有英语客户.这是一个有趣的问题,但我不认为ASP.NET MVC框架会支持它.

这是场景.路线...

具体示例
英文网址
www.stackoverflow.com/questions/ask

也会支持

法语网址
www.stackoverflow.com/problème/poser

通用示例
英文URL
http://clientA.product.com/AreaNameEnglish/ControllerNameEnglish/ActionNameEnglish/params

也需要支持

法语URL
http://clientB.product.com/AreaNameFrench/ControllerNameFrench/ActionNameFrench/params

所以在MVC我的区域,控制器和动作都需要有英文和法文翻译.

如果我将所有控制器,视图和动作名称硬编码为法语,显然可维护性将是一个巨大的问题.无论如何本地化浏览器中显示的路线而不这样做?请记住,应用程序中有许多不同的路径.有几个区域,每个区域都有一些控制器,每个控制器都有许多动作?

谢谢,
贾斯汀

编辑
感谢@womp这是我到目前为止所提出的...虽然最后我采取了我发布的方法作为答案.

public class LocalizedControllerFactory : DefaultControllerFactory
{
    public override IController CreateController(RequestContext requestContext, string controllerName)
    {
        if (string.IsNullOrEmpty(controllerName))
            throw new ArgumentNullException("controllerName");

        if (CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "fr")
        {
            controllerName = this.ReplaceControllerName(requestContext, controllerName);
            this.ReplaceActionName(requestContext);
            this.ReplaceAreaName(requestContext);
        }

        return base.CreateController(requestContext, controllerName);
    }

    private string ReplaceControllerName(RequestContext requestContext, string controllerName)
    {
        // would use the language above to pick the propery controllerMapper.  For now just have french
        Dictionary<string, …
Run Code Online (Sandbox Code Playgroud)

url asp.net-mvc localization asp.net-mvc-routing

14
推荐指数
1
解决办法
7236
查看次数